Paso 20: Carga el programa
Programas en el lenguaje de Arduino se denominan bocetos. Este bosquejo muestra la carga y su robot se zoom todo en ningún momento! Si tienes problemas con el archivo .ino, el programa se incluye a continuación en negrita, sólo tienes que copiar y pegar en la ventana ejecutable de Arduino.
Recopilación de programas de robótica para el uso en Instructables. Gracias por todo el mundo que han contribuido!
#define trigPin 7 #define echoPin 6 //#define led led2 //#define 11 10
int pinI1 = 8; //define I1 interfaz int pinI2 = 11; //define I2 interfaz int speedpinA = 9; //enable motor un int pinI3 = 12; //define I3 interfaz int pinI4 = 13; //define I4 interfaz int speedpinB = 10; //enable motor B
void setup() {Serial.begin (9600); pinMode (trigPin, salida); pinMode (echoPin, entrada); / / pinMode (led, salida); / / / / pinMode (led2, salida); / /
pinMode(pinI1,OUTPUT); pinMode(pinI2,OUTPUT); pinMode(speedpinA,OUTPUT); pinMode(pinI3,OUTPUT); pinMode(pinI4,OUTPUT); pinMode(speedpinB,OUTPUT); }
void loop() {de larga duración, distancia; digitalWrite (trigPin, LOW); / / añadido esta línea delayMicroseconds(2); / / añade esta línea digitalWrite (trigPin, HIGH); / / delayMicroseconds(1000); - quitar esta línea delayMicroseconds(10); / / añadido esta línea digitalWrite (trigPin, LOW); duración = pulseIn (echoPin, HIGH); distancia = (duración/2) / 29,1; si (< 40 a distancia) {/ / esto es donde el LED de encendido/apagado sucede analogWrite (speedpinA, 0); //Slows la velocidad de motores cero analogWrite (speedpinB 0); //Slows la velocidad de los motores a cero digitalWrite (pinI4, bajo); //turn DC Motor B mover digitalWrite(pinI3,HIGH) hacia la derecha; digitalWrite (pinI2, LOW); //turn DC Motor A mover digitalWrite(pinI1,HIGH) hacia la izquierda; digitalWrite(led,HIGH); Cuando se cumple la condición roja, debe apagarse el LED verde / / digitalWrite(led2,LOW); } else {analogWrite (speedpinA, 240); //Drive adelante analogWrite (speedpinB, 240) //Drive adelante digitalWrite (pinI4, bajo) //turn CC Motor B mover hacia la derecha digitalWrite(pinI3,HIGH); digitalWrite (pinI2, bajo); //turn DC Motor A movimiento en sentido antihorario digitalWrite(pinI1,HIGH); / / digitalWrite(led,LOW); / / digitalWrite(led2,HIGH);} si (distancia > = 200 || distancia < = 0) {analogWrite (speedpinA, 240); //Drive adelante analogWrite (speedpinB, 240); //Drive adelante digitalWrite (pinI4, LOW); //turn DC Motor B move derecha digitalWrite (pinI3 ALTO); digitalWrite (pinI2, LOW); //turn DC Motor A mover digitalWrite(pinI1,HIGH) hacia la izquierda; Serial.println ("fuera de rango"); } else {Serial.print(distance); Serial.println ("cm"); } delay(500); }
Consulte la Página Web de Arduino para obtener instrucciones detalladas sobre programas de carga, escribir tus propios programas e investigando lógica de robot. Arduino tiene una enorme comunidad de personas que trabajan en todos los aspectos del control, cualquier problema que es probable que encuentro más probable es que se ha resuelto ya.