Clusterbot! (11 / 11 steg)
Steg 11: Pimp din robot, ladda upp koden och släpp loss Clusterbot!
Jag bifogade en LED till stift 7 på Arduino. Jag använde inte ett motstånd! Men du bör.
Jag bifogade en Piezo Summer till stift 9 på Arduino. Jag använde inte en resistor. Men du bör.
Du kommer att behöva ladda ner HC-SR04 biblioteket och spara den på din Arduino biblioteksmappen. Få det här.
Koden:
#include "Ultrasonic.h"
Ultraljuds ultraljud (10, 11);
#define PWMA 3
#define AIN1 0
#define AIN2 1
#define PWMB 5
#define BIN1 2
#define BIN2 4
#define STBY 6
#define LED 7
#define högtalare 9
#define FREQ 1000
/ * Robot bör fortsätta rakt tills ett objekt är inom avstånd tröskeln * /
/ * Ledsen för superflous koden längst ner - jag måste få dessa funktioner * /
/ * till en header-fil * /
/ * Roboten bör gå framåt och har en stadig grön LED förrän något är 7 inches framför sensorn.
Roboten ska sluta och rotera åt vänster tills det inte finns ett objekt inom 7 inches längre * /
void setup() {
pinMode(PWMA,OUTPUT);
pinMode(AIN1,OUTPUT);
pinMode(AIN2,OUTPUT);
pinMode(PWMB,OUTPUT);
pinMode(BIN1,OUTPUT);
pinMode(BIN2,OUTPUT);
pinMode(STBY,OUTPUT);
pinMode(LED,OUTPUT);
}
void loop() {
startUp();
tag (ultraljud. Ranging(Inc) < 9) {
rotateLeft();
digitalWrite(LED,HIGH);
Tone(Speaker,freq);
Delay(20);
digitalWrite(LED,LOW);
noTone(SPEAKER);
Delay(20);
}
goForward();
digitalWrite(LED,HIGH);
}
void goForward)
{
digitalWrite (AIN1, hög);
digitalWrite (AIN2, låg);
analogWrite(PWMA,233);
digitalWrite (BIN1, hög);
digitalWrite (BIN2, låg);
analogWrite(PWMB,255);
}
void goBackward)
{
digitalWrite (AIN1, låg);
digitalWrite (AIN2, hög);
analogWrite(PWMA,233);
digitalWrite (BIN1, låg);
digitalWrite (BIN2, hög);
analogWrite(PWMB,255);
}
void rotateRight)
{
digitalWrite (AIN1, hög);
digitalWrite (AIN2, låg);
analogWrite(PWMA,255);
digitalWrite (BIN1, låg);
digitalWrite (BIN2, hög);
analogWrite(PWMB,255);
}
void rotateLeft)
{
digitalWrite (AIN1, låg);
digitalWrite (AIN2, hög);
analogWrite(PWMA,255);
digitalWrite (BIN1, hög);
digitalWrite (BIN2, låg);
analogWrite(PWMB,255);
}
void veerLeft)
{
digitalWrite (AIN1, hög);
digitalWrite (AIN2, låg);
analogWrite(PWMA,190);
digitalWrite (BIN1, hög);
digitalWrite (BIN2, låg);
analogWrite(PWMB,255);
}
void veerRight)
{
digitalWrite (AIN1, hög);
digitalWrite (AIN2, låg);
analogWrite(PWMA,255);
digitalWrite (BIN1, hög);
digitalWrite (BIN2, låg);
analogWrite(PWMB,190);
}
void applyBrakes)
{
digitalWrite (AIN1, hög);
digitalWrite (AIN2, hög);
analogWrite(PWMA,255);
digitalWrite (BIN1, hög);
digitalWrite (BIN2, hög);
analogWrite(PWMB,255);
}
Ogiltig start)
{
digitalWrite(STBY,HIGH);
}
void turnAround()
{
rotateLeft();
Delay(1370);
}
void avstängning)
{
digitalWrite(STBY,LOW);
}