Anda di halaman 1dari 3

Chapter 3 Challenges

Questions
1. What are some of the symptoms of brownout on the BOE Shield-Bot?
the symptoms are unpredictable behaviors like for example going in random directions or
random dancing
2. What is a reset?
when the Arduino restarts to perform a Arduino sketch from the start
3. How can a piezo speaker be used to announce that brownout just occurred?
when you add statements to the piezo speaker that make a tone at the start of your sketches it will
play a tone if brownout occurs
4. What function makes the speaker play tones?
the tone function
5. Whats a hertz? Whats its abbreviation?
it's a measurement of the number times per second a signal repeats itself.
Exercises
1. Write a statement that makes a tone, one that sounds different from the start-alert tone, to
signify the end of a sketch. tone(4, 2000, 1500) ;
2. Write a statement that plays a speaker tone to signify an intermediate step in the sketch.
This tone should be different from a start-alert or end tone tone (4, 4000, 75).

Projects
1. Modify the TestServoSpeed sketch so that it makes a tone signifying each test is
complete*
Robotics with the BOE Shield Chapter 3, Project 1
*/

#include <Servo.h> // Include servo library

Servo servoLeft; // Declare left servo signal


Servo servoRight; // Declare right servo
signal

void setup() // Built in initialization


block
{
tone(4, 3000, 1000); // Play tone for 1 second
delay(1000); // Delay to finish tone

Serial.begin(9600); // Set data rate to 9600 bps


servoLeft.attach(13); // Attach left signal to P13
}

void loop() // Main loop auto-repeats


{

// Loop counts with pulseWidth from 1375 to 1625 in increments of 25.


for(int pulseWidth = 1375; pulseWidth <= 1625; pulseWidth += 25)
{
Serial.print("pulseWidth = "); // Display pulseWidth value
Serial.println(pulseWidth);
Serial.println("Press a key and click"); // User prompt
Serial.println("Send to start servo...");

while(Serial.available() == 0); // Wait for character


Serial.read(); // Clear character

Serial.println("Running...");
servoLeft.writeMicroseconds(pulseWidth); // Pin 13 servo speed =
pulse
delay(6000); // ..for 6 seconds
servoLeft.writeMicroseconds(1500); // Pin 13 servo speed = stop
tone(4, 4000, 75); // Test complete
}
}
.
2. Modify the Test Servo Speed sketch so that it runs both wheels instead of just one with
each test. Make the right wheel turn the opposite direction from the left wheel.
/*
Robotics with the BOE Shield Chapter 3, Project 2
*/

#include <Servo.h> // Include servo library

Servo servoLeft; // Declare left servo signal


Servo servoRight; // Declare right servo
signal

void setup() // Built in initialization


block
{
tone(4, 3000, 1000); // Play tone for 1 second
delay(1000); // Delay to finish tone

Serial.begin(9600); // Set data rate to 9600 bps


servoLeft.attach(13); // Attach left signal to P13
servoRight.attach(12); // Attach right signal to
P12
}
void loop() // Main loop auto-repeats
{

// Loop counts with pulseWidth from 1375 to 1625 in increments of 25.

for(int pulseWidth = 1375; pulseWidth <= 1625; pulseWidth += 25)


{
Serial.print("pulseWidth = "); // Display pulseWidth value
Serial.println(pulseWidth);
Serial.println("Press a key and click"); // User prompt
Serial.println("Send to start servo...");

while(Serial.available() == 0); // Wait for character


Serial.read(); // Clear character

Serial.println("Running...");
servoLeft.writeMicroseconds(pulseWidth); // Pin 13 servo speed =
pulse
// Pin 12 servo opposite direction of pin 13 servo.
servoRight.writeMicroseconds(1500 + (1500 - pulseWidth));
delay(6000); // ..for 6 seconds
servoLeft.writeMicroseconds(1500); // Pin 13 servo speed = stop
servoRight.writeMicroseconds(1500); // Pin 12 servo speed = stop
tone(4, 4000, 75); // Test complete
}
}

Anda mungkin juga menyukai