Stap 8: Arduino programmering
Dit is de code van de arduino te lezen en uitvoeren van de commando's:
#define echoPin 10 / / Echo Pin
#define trigPin 11 / / Trigger Pin #include #include / / Inicializa o display geen endereco 0x27 LiquidCrystal_I2C lcd (0x27, 2, 1, 0, 4, 5, 6, 7, 3, positieve);
lange duur, afstand; lange randomPisca; type int; int IN1 = 4; int IN2 = 5; int 3 = 6; int IN4 = 7; Tekenreeks modus = "rover";
void setup {delay(650); Serial.begin(9600); LCD.begin (20, 4); pinMode (trigPin, OUTPUT); pinMode (echoPin, INPUT); pinMode (IN1, uitvoer); pinMode (IN2, uitvoer); pinMode (3, OUTPUT); pinMode (IN4, uitvoer); randomSeed(analogRead(A0)); Engage(); }
void loop {als (modus == "rover") {randomPisca = random(1000); if (randomPisca < = 12.0) {pisca();} anders als (randomPisca > = 13,0 & & randomPisca < = 20,0) {olhaDireita(); delay(500); olhaEsquerda(); delay(500);} anders olhaFrente();} als (modus == "trena") {cls() digitalWrite (trigPin, laag); delayMicroseconds(2); digitalWrite (trigPin, hoge); delayMicroseconds(10); digitalWrite (trigPin, laag); duur = pulseIn (echoPin, hoge); afstand = duur / 58.2; Serial.Print(distance); lcd.setCursor (0, 0); LCD.Print ("ATX 2.0"); lcd.setCursor (1, 1); LCD.Print(distance); lcd.setCursor (1, 2); LCD.Print("cm"); lcd.setCursor (0, 3); LCD.Print ("Modo trena"); delay(400); } Als (modus == "medo") {digitalWrite (trigPin, laag); delayMicroseconds(2); digitalWrite (trigPin, hoge); delayMicroseconds(10); digitalWrite (trigPin, LOW), duur = pulseIn (echoPin, hoge); afstand = duur / 58.2; Serial.Print(distance); Serial.Print ("cm"); Serial.println(); Als (afstand < = 20) {olhaCima(); tras();} else olhaFrente(); } Als (Serial.available() > 0) {type Serial.read(); = als (modus == "rover") {als (type == '1') {digitalWrite (trigPin, laag); delayMicroseconds(2); digitalWrite (trigPin, hoge); delayMicroseconds(10); digitalWrite (trigPin, LOW), duur = pulseIn (echoPin, hoge); afstand = duur / 58.2; Serial.Print(distance); {}} Als (type == '2') {olhaBugado(); tras();} als (type == '5') {olhaFrente(); frente();} als (type == "6") {olhaEsquerda(); esquerda();} als (type == '4') {olhaDireita(); direita();} else {}} als (type == had') {lcd.setBacklight(LOW);} als (type == 'l') {lcd.setBacklight(HIGH);} als (type == 't') {modus = "trena";} als (type == 'r') {modus = "rover";} als (type == ben ') {modus = "medo";}} } void tras() {//Tras digitalWrite (IN1, laag); digitalWrite (IN2, hoge); digitalWrite (3, hoge); digitalWrite (IN4, laag); delay(200) digitalWrite (IN1, hoge); digitalWrite (IN2, hoge); digitalWrite (3, hoge); digitalWrite (IN4, hoge); delay(10);} void frente() {//Frente digitalWrite (IN1, hoge); digitalWrite (IN2, laag); digitalWrite (3, laag); digitalWrite (IN4, hoge); delay(200) digitalWrite (IN1, hoge); digitalWrite (IN2, hoge); digitalWrite (3, hoge); digitalWrite (IN4, hoge); delay(10);} direita() {//Direita digitalWrite (IN1 void HOGE); digitalWrite (IN2, laag); digitalWrite (3, hoge); digitalWrite (IN4, laag); delay(200); digitalWrite (IN1, hoge); digitalWrite (IN2, hoge); digitalWrite (3, hoge); digitalWrite (IN4, hoge); delay(10); } void esquerda() {//Esquerda digitalWrite (IN1, laag); digitalWrite (IN2, hoge); digitalWrite (3, laag); digitalWrite (IN4, hoge); delay(200); digitalWrite (IN1, hoge); digitalWrite (IN2, hoge); digitalWrite (3, hoge); digitalWrite (IN4, hoge); delay(10);} ongeldig engage() {lcd.setBacklight(HIGH); lcd.print("*---*"); lcd.setCursor (0, 0) en lcd.setCursor (0, 1); lcd.print("| ATX 2.0 | "); lcd.setCursor (0, 2); LCD.Print("| (ALS Robots) | "); lcd.setCursor (0, 3); LCD.Print("*---*"); delay(3000); lcd.setCursor (0, 0); LCD.Print ("---"); lcd.setCursor (0, 1); LCD.Print ("ATX 2.0"); lcd.setCursor (0, 2); LCD.Print ("(ALS Robots)"); lcd.setCursor (0, 3); LCD.Print ("---"); delay(100); lcd.setCursor (0, 0); LCD.Print ("---"); lcd.setCursor (0, 1); LCD.Print ("ATX 2.0"); lcd.setCursor (0, 2); LCD.Print ("(ALS Robots)"); lcd.setCursor (0, 3); LCD.Print ("---"); delay(100); lcd.setCursor (0, 0); LCD.Print ("---"); lcd.setCursor (0, 1); LCD.Print ("ATX 2.0"); lcd.setCursor (0, 2); LCD.Print ("(ALS Robots)"); lcd.setCursor (0, 3); LCD.Print ("---"); delay(100); lcd.setCursor (0, 0); LCD.Print ("---"); lcd.setCursor (0, 1); LCD.Print ("ATX 2.0"); lcd.setCursor (0, 2); LCD.Print ("(ALS Robots)"); lcd.setCursor (0, 3); LCD.Print ("---"); delay(100); lcd.setCursor (0, 0); LCD.Print ("---"); lcd.setCursor (0, 1); LCD.Print ("ATX 2.0"); lcd.setCursor (0, 2); LCD.Print ("ALS Robots"); lcd.setCursor (0, 3); LCD.Print ("---"); delay(100); lcd.setCursor (0, 0); LCD.Print ("---"); lcd.setCursor (0, 1); LCD.Print ("ATX 2.0"); lcd.setCursor (0, 2); LCD.Print ("LS Robot"); lcd.setCursor (0, 3); LCD.Print ("---"); delay(100); lcd.setCursor (0, 0); LCD.Print ("---"); lcd.setCursor (0, 1); LCD.Print ("TX 2.0"); lcd.setCursor (0, 2); LCD.Print ("S Robo"); lcd.setCursor (0, 3); LCD.Print ("---"); delay(100); lcd.setCursor (0, 0); LCD.Print ("---"); lcd.setCursor (0, 1); LCD.Print ("X 2. "); lcd.setCursor (0, 2); LCD.Print ("Rob"); lcd.setCursor (0, 3); LCD.Print ("---"); delay(100); lcd.setCursor (0, 0); LCD.Print ("--"); lcd.setCursor (0, 1); LCD.Print ("2"); lcd.setCursor (0, 2); LCD.Print ("Ro"); lcd.setCursor (0, 3); LCD.Print ("--"); delay(100); lcd.setCursor (0, 0); LCD.Print(""); lcd.setCursor (0, 1); LCD.Print(""); lcd.setCursor (0, 2); LCD.Print(""); lcd.setCursor (0, 3); LCD.Print(""); delay(200); lcd.setCursor (0, 0); LCD.Print ("___ ___"); lcd.setCursor (0, 1); LCD.Print("||||"); lcd.setCursor (0, 2); LCD.Print("| O| | O| "); lcd.setCursor (0, 3); LCD.Print ("------"); delay(700); lcd.setCursor (0, 0); LCD.Print ("___ ___"); lcd.setCursor (0, 1); LCD.Print("||||"); lcd.setCursor (0, 2); LCD.Print("| O | | O | "); lcd.setCursor (0, 3); LCD.Print ("------"); delay(700); lcd.setCursor (0, 0); LCD.Print ("___ ___"); lcd.setCursor (0, 1); LCD.Print("| O | | O | "); lcd.setCursor (0, 2); LCD.Print("||||"); lcd.setCursor (0, 3); LCD.Print ("------"); delay(700); lcd.setCursor (0, 0); LCD.Print ("___ ___"); lcd.setCursor (0, 1); LCD.Print("| O| | O| "); lcd.setCursor (0, 2); LCD.Print("||||"); lcd.setCursor (0, 3); LCD.Print ("------"); delay(700); pisca(); } pisca() {delay(100) lcd.setCursor (0, 0); lcd.print ("___ ___"); void lcd.setCursor (0, 1); LCD.Print ("|___| |___|"); lcd.setCursor (0, 2); LCD.Print("| O | | O | "); lcd.setCursor (0, 3); LCD.Print ("------"); delay(100); lcd.setCursor (0, 0); LCD.Print ("___ ___"); lcd.setCursor (0, 1); LCD.Print("||||"); lcd.setCursor (0, 2); LCD.Print ("|___| |___|"); lcd.setCursor (0, 3); LCD.Print ("------"); delay(100); lcd.setCursor (0, 0); LCD.Print ("___ ___"); lcd.setCursor (0, 1); LCD.Print ("|___| |___|"); lcd.setCursor (0, 2); LCD.Print("| O | | O | "); lcd.setCursor (0, 3); LCD.Print ("------"); delay(100); lcd.setCursor (0, 0); LCD.Print ("___ ___"); lcd.setCursor (0, 1); LCD.Print("||||"); lcd.setCursor (0, 2); LCD.Print("| O | | O | "); lcd.setCursor (0, 3); LCD.Print ("------"); delay(1000); } olhaDireita() {lcd.setCursor (0, 0); lcd.print ("___ ___"); void lcd.setCursor (0, 1); LCD.Print("||||"); lcd.setCursor (0, 2); LCD.Print("| O| | O| "); lcd.setCursor (0, 3); LCD.Print ("------");} VOID olhaEsquerda() {lcd.setCursor (0, 0); lcd.print ("___ ___"); lcd.setCursor (0, 1); LCD.Print("||||"); lcd.setCursor (0, 2); LCD.Print("| O | | O | "); lcd.setCursor (0, 3); LCD.Print ("------");} VOID olhaFrente() {lcd.setCursor (0, 0); lcd.print ("___ ___"); lcd.setCursor (0, 1); LCD.Print("||||"); lcd.setCursor (0, 2); LCD.Print("| O | | O | "); lcd.setCursor (0, 3); LCD.Print ("------");} VOID olhaBugado() {lcd.setCursor (0, 0); lcd.print ("___ ___"); lcd.setCursor (0, 1); LCD.Print("||| O| "); lcd.setCursor (0, 2); LCD.Print("| O | | | "); lcd.setCursor (0, 3); LCD.Print ("------");} VOID olhaVesgo() {lcd.setCursor (0, 0); lcd.print ("___ ___"); lcd.setCursor (0, 1); LCD.Print("||||"); lcd.setCursor (0, 2); LCD.Print("| O| | O | "); lcd.setCursor (0, 3); LCD.Print ("------");} VOID olhaCima() {lcd.setCursor (0, 0); lcd.print ("___ ___"); lcd.setCursor (0, 1); LCD.Print("| O | | O | "); lcd.setCursor (0, 2); LCD.Print("||||"); lcd.setCursor (0, 3); LCD.Print ("------");} VOID cls() {lcd.setCursor (0, 0); lcd.print(""); lcd.setCursor (0, 1); LCD.Print(""); lcd.setCursor (0, 2); LCD.Print(""); lcd.setCursor (0, 3); LCD.Print("");}