Robot orm (7 / 16 steg)
Steg 7: Hur allt ser ut tillsammans
Detta steg är inte att lägga till något nytt till arduino, men markerar avsluta av den elektriska delen av projektet och börjar material portion. Från och med nu ut, alla bitar nämnde vi separat i föregående steg måste sammanföras och börjar skapa ett sammanhängande projekt. Vi ger en bild av allt vi har lagt till bakbord och arduino setup. Vi har även färdiga koden som vi kommer att använda att styra ormen från här på ut.
Final koden
/*
int photocellReading3; analog läsning från analoga resistor avdelare
int photocellReading4; analog läsning från analoga resistor avdelare
int photocellReading5; analog läsning från analoga resistor avdelare
int photocellDifference1;
int photocellDifference2;
int lrValue;
int timer = 1;
void setup(void) {
Serial.BEGIN(9600);
// ///////////////// //
Ställ in motorer / /
// ///////////////// //
pinMode (12, OUTPUT); Initierar Motor kanal A stift
pinMode (9, OUTPUT); Initierar broms kanal A stift
pinMode (13, OUTPUT); Initierar Motor kanal B pin
pinMode (8, OUTPUT); Initierar broms kanal B pin
digitalWrite 13, låg. Upprättar riktning framåt av kanal A
digitalWrite 8, låg. Lossa bromsen för kanal A
digitalWrite 12, låg. Upprättar riktning framåt av kanal B
digitalWrite (9, låg). Lossa bromsen för kanal B
// /////////////////// //
Ställa in alla lysdioder / /
// /////////////////// //
pinMode (7, OUTPUT); initiera stift 7 för LED grupp 1
pinMode (6, OUTPUT); initiera stift 6 för LED grupp 2
pinMode (5, OUTPUT); initiera stift 5 för LED grupp 3
// ////////////////////////// //
Ställ in vibration motor / /
// ////////////////////////// //
pinMode (10, OUTPUT); initiera stift 10 för vibration motor
}
void loop(void) {
// /////////////////////////////// //
fotocell sensormätningar / /
// /////////////////////////////// //
photocellReading3 = analogRead(3); kommer att gå till motor A
photocellReading4 = analogRead(4); kommer att gå till motor B
photocellReading5 = analogRead(5); basera ljus läsning
få skillnader mellan sensorer för motorer och sensor för omgivande ljus
photocellDifference1 = (photocellReading3 - photocellReading5);
photocellDifference2 = (photocellReading4 - photocellReading5);
lrValue = photocellDifference2 - photocellDifference1;
// /////////////////////////////////// //
slå på motors baserat på sensorer / /
// /////////////////////////////////// //
om (lrValue < = -120) {
analogWrite (11, 255);
analogWrite (3, 100);
} else om (lrValue < = -90) {
analogWrite (11, 224);
analogWrite (3, 100);
} else om (lrValue < =-60) {
analogWrite (11, 193);
analogWrite (3, 100);
} else om (lrValue < = -40) {
analogWrite (11, 162);
analogWrite (3, 100);
} else om (lrValue < = -25) {
analogWrite (11, 131);
analogWrite (3, 100);
} else om (lrValue < 25) {
analogWrite (11, 100);
analogWrite (3, 100);
} else om (lrValue < 40) {
analogWrite (11, 100);
analogWrite (3, 131);
} else om (lrValue < 60) {
analogWrite (11, 100);
analogWrite (3, 162);
} else om (lrValue < 90) {
analogWrite (11, 100);
analogWrite (3, 193);
} else om (lrValue < 120) {
analogWrite (11, 100);
analogWrite (3, 224);
} annat {
analogWrite (11, 100);
analogWrite (3, 255);
}
// //////////////// //
lysdioder grupp 1 / /
// ///////////// // //
om (((timer-1) % 4) == 1)
digitalWrite (7, hög). ställa in LED på
annat
digitalWrite (7, låg). iväg för LED
// //////////////// //
lysdioder grupp 2 / /
// ///////////// // //
om ((((timer-3) % 4) == 2) || (((timer-3) % 4) == 1))
digitalWrite (6, hög). ställa in LED på
annat
digitalWrite (6, låg). iväg för LED
// //////////////// //
lysdioder grupp 3 / /
// ///////////// // //
om ((((timer-2) % 3) == 1) || (((timer-2) % 3) == 2))
digitalWrite 5, hög, ställa in LED på
annat
digitalWrite (5, låg). iväg för LED
// ///////////////// //
vibrator motor / /
// ///////////////// //
om (((timer % 16) == 1) || ((timer % 15) == 2) || ((timer % 15) == 3))
digitalWrite 10, hög. Ställ in vibration motor på
annat
digitalWrite (10, låg). kvitta vibration motor
nollställa timern var 12 sekunder
om (timer == 48)
Timer = 1;
annat
timer ++;
fördröjning för 0,25 sekunder
Delay(250);
}
*/