Paso 4: Código de Arduino
Este proyecto requiere piezas de código. 'Firmware' que es cargado en el microcontrolador de Arduino. Y 'Software' que está dirigido por el programa de proceso en el PC.
La cadena de mando es del tipo - procesamiento -> tablero de Ardcuino -> Steppr -> Controladores de motores paso a paso -> X-Y etapas.
Aquí hay un poco más detalles de la comunicación que va pasando, basada en mi entendimiento de cómo funcionan las cosas...
El software de procesamiento enviará comandos a la placa Arduino sobre el cable USB. Placa Arduino el T tomará el mando y configurar los pines de salida especificada a alta o Estados lógico bajo (5V o 0V). Los controladores paso a paso están conectados a las salidas de la placa de Arduino. Así que cuando los conductores ven las señales de alta y baja, envían energía a las bobinas apropiado en los motores paso a paso, lo que los hace ir.
El código siguiente configura la placa de Arduino para escuchar los comandos del proceso y luego tomar acciones.
Puede copiar y pegar el código en el IDE de Arduino. Compruebe el código haciendo clic en el "juego" botón. Si no hay ningún error que entonces puedes subirlo al directorio pulsando el botón upload - que parece una flecha a la derecha.
Código de Arduino:
Leer datos de la serie y encender o apagar una luz dependiendo del valor
y control de motor paso a paso en RepStrap
char val; Datos recibidos del puerto serial
int ledPin = 13; Configurar el pin digital 13 de entrada-salida
#define XstepPin 10
#define XdirPin 7
#define YstepPin 2
#define YdirPin 3
void setup() {}
pinMode (ledPin, salida); Conjunto pin como salida
pinMode (XstepPin, salida);
pinMode (XdirPin, salida);
pinMode (YstepPin, salida);
pinMode (YdirPin, salida);
Serial.Begin(9600); Iniciar la comunicación serial a 9600 bps
}
void loop() {}
Si (Serial.available()) {/ / si hay datos disponibles para leer,
Val = Serial.read(); leerla y guardarla en val
}
Si (val == 'H') {/ / H si se recibió
digitalWrite (ledPin, HIGH); Encienda el LED
digitalWrite(XdirPin,HIGH);
digitalWrite(XstepPin,HIGH);
delayMicroseconds(2);
digitalWrite(XstepPin,LOW);
delayMicroseconds(2);
}
Si (val == 'h') {}
digitalWrite (ledPin, HIGH); Encienda el LED
digitalWrite(YdirPin,HIGH);
digitalWrite(YstepPin,HIGH);
delayMicroseconds(2);
digitalWrite(YstepPin,LOW);
delayMicroseconds(2);
}
Si (val == 'L') {}
digitalWrite (ledPin, LOW); De lo contrario apague
digitalWrite(XdirPin,LOW);
digitalWrite(XstepPin,HIGH);
delayMicroseconds(2);
digitalWrite(XstepPin,LOW);
delayMicroseconds(2);
}
Si (val == 'l') {}
digitalWrite (ledPin, LOW); De lo contrario apague
digitalWrite(YdirPin,LOW);
digitalWrite(YstepPin,HIGH);
delayMicroseconds(2);
digitalWrite(YstepPin,LOW);
delayMicroseconds(2);
}
delayMicroseconds(1000); <<<<<< Uso de cambio de velocidad <<<<<<<<
}