Bärbar dator styrd Robot v2.0 (19 / 24 steg)
Steg 19: Ladda upp koden
Kopiera koden nedan och klistra in den till din arduino ide skärm. Du behöver ta bort modulen BT innan du laddar upp som rx och tx stiften är associerade med programmering chip så ingenting ska anslutas till dessa stift samtidigt ladda upp koden. Så ta bort din arduino från skölden och ladda upp koden eller ta bort modulen BT från sin sockel.
#include / / Lägg till nya ping biblioteket här
#include / / Lägg till biblioteket flytande kristaller här
LiquidCrystal lcd (11, 8, 7, 4, 3, 2);
float temp = 1;
int temppin = A0;
int r_motor_n = 9; PWM kontroll rätt Motor +
int r_motor_p = 10; PWM kontroll rätt Motor-
int l_motor_p = 6; PWM kontroll vänster Motor-
int l_motor_n = 5; PWM kontroll vänster Motor +
int f_light = A3;
int b_light = A4;
int horn = 12.
int n_light = 13.
int speedy = 255;
int incomingByte = 0; för inkommande seriella data
#define TRIGGER A2 / / Arduino PIN-kod knuten till utlösa pin på ultrasonic sensor.
#define ECHO A1 / / Arduino PIN-kod knuten till echo pin på ultrasonic sensor.
#define MAX 400 / / maximalt avstånd vi vill skicka ping (i centimeter). Maximal sensorn avståndet är dimensionerade för 400-500cm.
NewPing sonar (TRIGGER, ECHO, MAX); NewPing inställning av stift och maximalt avstånd.
void setup()
{
pinMode (r_motor_n, produktionen); Ställa in kontroll stiften att utgångar
pinMode (r_motor_p, produktionen);
pinMode (l_motor_p, produktionen);
pinMode (l_motor_n, produktionen);
pinMode (f_light, produktionen);
pinMode (b_light, produktionen);
pinMode (n_light, produktionen);
pinMode (horn, utgång);
digitalWrite (r_motor_n, låg); kvitta båda motorer för start
digitalWrite (r_motor_p, låg);
digitalWrite (l_motor_p, låg);
digitalWrite (l_motor_n, låg);
Serial.BEGIN(9600);
Serial.println("Start");
LCD.BEGIN(16,2);
LCD.Clear();
LCD.Print ("Hej");
lcd.setCursor(0,1);
LCD.Print ("Jag är Robot");
Delay(3000);
}
void loop()
{< /liquidcrystal.h >< /newping.h >< /p >< p > om (Serial.available() > 0)
{
incomingByte = Serial.read();
} < /p >< p > switch(incomingByte)
{< /p >< p > fallet ": / / kontroll för att stoppa roboten
digitalWrite (r_motor_n, låg);
digitalWrite (r_motor_p, låg);
digitalWrite (l_motor_p, låg);
digitalWrite (l_motor_n, låg);
Serial.println("stop");
LCD.Clear();
LCD.Print("stop");
incomingByte ='* ';
Break; < /p >< p > fallet "R": //control för rätt
analogWrite (r_motor_n, speedy);
digitalWrite (r_motor_p, låg);
analogWrite (l_motor_p, speedy);
digitalWrite (l_motor_n, låg);
Serial.println("Right");
LCD.Clear();
LCD.Print("Right");
incomingByte ='* ';
Break; < /p >< p > fallet 'L': //control för vänster
digitalWrite (r_motor_n, låg);
analogWrite (r_motor_p, speedy);
digitalWrite (l_motor_p, låg);
analogWrite (l_motor_n, speedy);
Serial.println("left");
LCD.Clear();
LCD.Print("left");
incomingByte ='* ';
Break; < /p >< p > fallet "F": //control för framåt
analogWrite (r_motor_n, speedy);
digitalWrite (r_motor_p, låg);
digitalWrite (l_motor_p, låg);
analogWrite (l_motor_n, speedy);
Serial.println("forward");
LCD.Clear();
LCD.Print("forward");
incomingByte ='* ';
Break; < /p >< p > fallet "B": //control för bakåt
digitalWrite (r_motor_n, låg);
analogWrite (r_motor_p, speedy);
analogWrite (l_motor_p, speedy);
digitalWrite (l_motor_n, låg);
Serial.println("backwards");
LCD.Clear();
LCD.Print("Backward");
incomingByte ='* ';
Break; < /p >< p > fallet "f": //control för stopp
digitalWrite (r_motor_n, låg);
digitalWrite (r_motor_p, låg);
digitalWrite (l_motor_p, låg);
digitalWrite (l_motor_n, låg);
Serial.println("stop");
LCD.Clear();
LCD.Print("stop");
incomingByte ='* ';
Break; < /p >< p > fall skulle ": / / kontroll för rätt
analogWrite (r_motor_n, speedy);
digitalWrite (r_motor_p, låg);
analogWrite (l_motor_p, speedy);
digitalWrite (l_motor_n, låg);
Serial.println("Right");
LCD.Clear();
LCD.Print("Right");
incomingByte ='* ';
Break; < /p >< p > fallet "a": / / kontroll för vänster
digitalWrite (r_motor_n, låg);
analogWrite (r_motor_p, speedy);
digitalWrite (l_motor_p, låg);
analogWrite (l_motor_n, speedy);
Serial.println("left");
LCD.Clear();
LCD.Print("left");
incomingByte ='* ';
Break; < /p >< p > fallet "w": / / kontroll för framåt
analogWrite (r_motor_n, speedy);
digitalWrite (r_motor_p, låg);
digitalWrite (l_motor_p, låg);
analogWrite (l_motor_n, speedy);
Serial.println("forward");
LCD.Clear();
LCD.Print("forward");
incomingByte ='* ';
Break; < /p >< p > fallet ": / / kontroll för bakåt
digitalWrite (r_motor_n, låg);
analogWrite (r_motor_p, speedy);
analogWrite (l_motor_p, speedy);
digitalWrite (l_motor_n, låg);
Serial.println("backwards");
LCD.Clear();
LCD.Print("Backward");
incomingByte ='* ';
Break; < /p >< p > fallet 'J': / / främre lampor på
digitalWrite (f_light, hög);
Serial.println ("front ljus på");
incomingByte ='* ';
Break; < /p >< p > fallet "j":
digitalWrite (f_light, låg); utanför
Serial.println ("front lights off");
incomingByte ='* ';
Break; < /p >< p > fallet "K":
digitalWrite (b_light, hög); tillbaka lamporna på
Serial.println ("tillbaka lamporna på");
incomingByte ='* ';
Break; < /p >< p > fallet "k":
digitalWrite (b_light, låg); utanför
Serial.println ("tillbaka lights off");
incomingByte ='* ';
Break; < /p >< p > fallet "G":
digitalWrite (n_light, hög); neonljus på
Serial.println ("neonljus på");
incomingByte ='* ';
Break; < /p >< p > fallet "g":
digitalWrite (n_light, låg); utanför
Serial.println ("neon lights off");
incomingByte ='* ';
Break; < /p >< p > fallet "H":
digitalWrite (horn, hög); horn på
Serial.println ("horn på");
incomingByte ='* ';
Break; < /p >< p > fallet "h":
digitalWrite (horn, låg); utanför
Serial.println ("horn off");
incomingByte ='* ';
Break; < /p >< p > fallet ' o ': / / PWM hastighet värden
snabb = 0;
Serial.println ("speed = 0");
LCD.Clear();
LCD.Print("Speed=0");
incomingByte ='* ';
Break; < /p >< p > fallet '1':
snabb = 155;
Serial.println ("speed = 10");
LCD.Clear();
LCD.Print("Speed=10");
incomingByte ='* ';
Break; < /p >< p > fallet "2":
snabb = 165;
Serial.println ("speed = 20");
LCD.Clear();
LCD.Print("Speed=20");
incomingByte ='* ';
Break; < /p >< p > fallet "3":
snabb = 175;
Serial.println ("speed = 30");
LCD.Clear();
LCD.Print ("Speed = 30");
incomingByte ='* ';
Break; < /p >< p > fallet "4":
snabb = 185;
Serial.println ("speed = 40");
LCD.Clear();
LCD.Print("Speed=40");
incomingByte ='* ';
Break; < /p >< p > fallet '5':
snabb = 195;
Serial.println ("speed = 50");
LCD.Clear();
LCD.Print("Speed=50");
incomingByte ='* ';
Break; < /p >< p > fallet "6":
snabb = 205;
Serial.println ("speed 60 =");
LCD.Clear();
LCD.Print("Speed=60");
incomingByte ='* ';
Break; < /p >< p > fallet '7':
snabb = 215.
Serial.println ("speed = 70");
LCD.Clear();
LCD.Print("Speed=70");
incomingByte ='* ';
Break; < /p >< p > fallet "8":
snabb = 225;
Serial.println ("speed = 80");
LCD.Clear();
LCD.Print("Speed=80");
incomingByte ='* ';
Break; < /p >< p > fallet '9':
snabb = 235.
Serial.println ("speed = 90");
LCD.Clear();
LCD.Print("Speed=90");
incomingByte ='* ';
Break; < /p >< p > fallet "q":
snabb = 255;
Serial.println ("speed = 100");
LCD.Clear();
LCD.Print("Speed=100");
incomingByte ='* ';
Break; < /p >< p > fallet "p":
Delay(50); Visa temp. och avstånd
unsigned int oss = sonar.ping();
Serial.Print ("avstånd:");
Serial.Print(US / US_ROUNDTRIP_CM);
Serial.println("cm");
LCD.Clear();
LCD.Print ("avstånd:");
LCD.Print(US / US_ROUNDTRIP_CM);
LCD.Print("cm");
lcd.setCursor(0,1);
Temp = analogRead(temppin);
Temp = temp * 0.48828125;
Serial.Print ("temperatur =");
Serial.Print(temp);
Serial.Print("*C");
Serial.println();
LCD.Print ("Temp. = ");
LCD.Print(temp);
LCD.Print("*C");
Delay(1000);
incomingByte ='* ';
Break; < /p >< p > delay(5000);
}
} < /p >