#include int val; int key; int keynum; ///////////////////////////////////////////////// int enablePin1 = 9; //Motor's enable pin int enablePin2 = 10; //Motor's enable pin int dPin_1 = 4;// Digital Pin to turn the motor on/off int dPin_2 = 5; int dPin_3 = 6;// Digital Pin to turn the motor on/off int dPin_4 = 7; int beepin = 13; int leftpin = 8; int rightpin =2 ; int midpin=3; ////////////////////////////////////////////////// int rightpinste=0; int leftpinste=0; int midpinste=0; int speed1=100; int speed2=50; int randomnum; LiquidCrystal lcd(12, 11, 7, 6, 5, 4); void setup() { // set up the LCD's number of rows and columns: lcd.begin(16, 2); // Print a message to the LCD. lcd.print("dino cart!"); Serial.begin(115200); pinMode(enablePin1, OUTPUT); pinMode(dPin_1, OUTPUT); pinMode(dPin_2, OUTPUT); pinMode(enablePin2, OUTPUT); pinMode(dPin_3, OUTPUT); pinMode(dPin_4, OUTPUT); pinMode(beepin, OUTPUT); pinMode(leftpin, INPUT); pinMode(rightpin, INPUT); pinMode(midpin, INPUT); } void backward() { lcd.clear(); lcd.print("backward"); digitalWrite(enablePin1, HIGH); digitalWrite(enablePin2, HIGH); digitalWrite(dPin_1, HIGH); digitalWrite(dPin_2, LOW); digitalWrite(dPin_3, HIGH); digitalWrite(dPin_4, LOW); delay(speed1); digitalWrite(enablePin1, LOW); digitalWrite(enablePin2, LOW); digitalWrite(dPin_1, LOW); digitalWrite(dPin_2, LOW); digitalWrite(dPin_3, LOW); digitalWrite(dPin_4, LOW); } void forward() { lcd.clear(); lcd.print("forward"); digitalWrite(enablePin1, HIGH); digitalWrite(enablePin2, HIGH); digitalWrite(dPin_1, LOW); digitalWrite(dPin_2, HIGH); digitalWrite(dPin_3, LOW); digitalWrite(dPin_4, HIGH); delay(speed1); digitalWrite(enablePin1, LOW); digitalWrite(enablePin2, LOW); digitalWrite(dPin_1, LOW); digitalWrite(dPin_2, LOW); digitalWrite(dPin_3, LOW); digitalWrite(dPin_4, LOW); } void litforward() { lcd.clear(); lcd.print("lit forward"); digitalWrite(enablePin1, HIGH); digitalWrite(enablePin2, HIGH); digitalWrite(dPin_1, LOW); digitalWrite(dPin_2, HIGH); digitalWrite(dPin_3, LOW); digitalWrite(dPin_4, HIGH); delay(speed2); digitalWrite(enablePin1, LOW); digitalWrite(enablePin2, LOW); digitalWrite(dPin_1, LOW); digitalWrite(dPin_2, LOW); digitalWrite(dPin_3, LOW); digitalWrite(dPin_4, LOW); } void goright() { lcd.clear(); lcd.print("right"); digitalWrite(enablePin1, HIGH); digitalWrite(enablePin2, HIGH); digitalWrite(dPin_1, LOW); digitalWrite(dPin_2, HIGH); digitalWrite(dPin_3, HIGH); digitalWrite(dPin_4, LOW); delay(speed1); digitalWrite(enablePin1, LOW); digitalWrite(enablePin2, LOW); digitalWrite(dPin_1, LOW); digitalWrite(dPin_2, LOW); digitalWrite(dPin_3, LOW); digitalWrite(dPin_4, LOW); } void goleft() { lcd.clear(); lcd.print("left"); digitalWrite(enablePin1, HIGH); digitalWrite(enablePin2, HIGH); digitalWrite(dPin_1, HIGH); digitalWrite(dPin_2, LOW); digitalWrite(dPin_3, LOW); digitalWrite(dPin_4, HIGH); delay(speed1); digitalWrite(enablePin1, LOW); digitalWrite(enablePin2, LOW); digitalWrite(dPin_1, LOW); digitalWrite(dPin_2, LOW); digitalWrite(dPin_3, LOW); digitalWrite(dPin_4, LOW); } void beep() { lcd.clear(); lcd.print("beep!beep!"); digitalWrite(beepin, HIGH); delay(20); digitalWrite(beepin, LOW); delay(20); digitalWrite(beepin, HIGH); delay(20); digitalWrite(beepin, LOW); delay(20); } void stoprun() { lcd.clear(); lcd.print("stop"); digitalWrite(enablePin1, LOW); digitalWrite(enablePin2, LOW); digitalWrite(dPin_1, LOW); digitalWrite(dPin_2, LOW); digitalWrite(dPin_3, LOW); digitalWrite(dPin_4, LOW); } void detlight() { rightpinste= digitalRead(rightpin); midpinste= digitalRead(midpin); leftpinste= digitalRead(leftpin); if (rightpinste==HIGH && midpinste==HIGH && leftpinste==HIGH) { backward() ; } if (rightpinste==LOW && midpinste==HIGH && leftpinste==LOW) { litforward(); } if (rightpinste==HIGH && midpinste==LOW && leftpinste==LOW) { goleft(); } if (rightpinste==HIGH && midpinste==HIGH && leftpinste==LOW) { goleft(); litforward(); } if (rightpinste==LOW && midpinste==LOW && leftpinste==HIGH) { goright(); } if (rightpinste==LOW && midpinste==HIGH && leftpinste==HIGH) { goright(); litforward(); } } void randomrun() { randomnum = int(random(4)); detlight(); if(randomnum==0) { backward(); } if(randomnum==1) { forward(); } if(randomnum==2) { goright(); } if(randomnum==3) { goleft(); } if(randomnum==4) { stoprun(); } } void getkey() { keynum=analogRead(5); key=0; if (keynum>935 && keynum<945) { key=1; } if (keynum>955 && keynum<965) { key=2; } if (keynum>975 && keynum<985) { key=3; } if (keynum>995 && keynum<1005) { key=4; } } void loop() { getkey(); val=Serial.read(); if(val=='s'|| key==2) { backward(); } if(val=='w'||key==1) { forward(); } if(val=='d'||key==3) { goright(); } if(val=='a'||key==4) { goleft(); } if(val=='b') { beep(); } detlight(); }