Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Definimos a las líneas a las que se encuentran
- // conectados los puentes H
- #define M1A 9
- #define M1B 10
- #define M1C 11
- #define M1D 12
- #define M2A 3
- #define M2B 4
- #define M2C 5
- #define M2D 6
- // Buffer para almacenar los textos de control
- #define BUFFSIZE 255
- void setup() {
- //Configuramos todos los pines de control como output
- pinMode(M1A, OUTPUT);
- pinMode(M1B, OUTPUT);
- pinMode(M1C, OUTPUT);
- pinMode(M1D, OUTPUT);
- pinMode(M2A, OUTPUT);
- pinMode(M2B, OUTPUT);
- pinMode(M2C, OUTPUT);
- pinMode(M2D, OUTPUT);
- // Iniciamos el serial al que está conectado el módulo bluetooth
- Serial.begin(9600);
- }
- // FORWARD
- void go_forward() {
- digitalWrite(M1A,LOW);
- digitalWrite(M1B,HIGH);
- digitalWrite(M1C,HIGH);
- digitalWrite(M1D,LOW);
- }
- // REVERSE
- void go_reverse() {
- digitalWrite(M1A,HIGH);
- digitalWrite(M1B,LOW);
- digitalWrite(M1C,LOW);
- digitalWrite(M1D,HIGH);
- }
- // STOP
- void stop_motor() {
- digitalWrite(M1A,LOW);
- digitalWrite(M1B,LOW);
- digitalWrite(M1C,LOW);
- digitalWrite(M1D,LOW);
- }
- // RIGHT
- void turn_right() {
- digitalWrite(M2A,HIGH);
- digitalWrite(M2B,LOW);
- digitalWrite(M2C,LOW);
- digitalWrite(M2D,HIGH);
- }
- // LEFT
- void turn_left() {
- digitalWrite(M2A,LOW);
- digitalWrite(M2B,HIGH);
- digitalWrite(M2C,HIGH);
- digitalWrite(M2D,LOW);
- }
- // CENTER
- void center_wheels() {
- digitalWrite(M2A,LOW);
- digitalWrite(M2B,LOW);
- digitalWrite(M2C,LOW);
- digitalWrite(M2D,LOW);
- }
- //Código para manejo del buffer:
- char buffer[BUFFSIZE];
- int i = 0;
- void flush_buffer() {
- Serial.write((const uint8_t*)buffer,i);
- for(int j=0;j<=i;j++) {
- buffer[j] = 0;
- }
- i = 0;
- }
- void append_buffer(char c) {
- if(i<BUFFSIZE) {
- buffer[i++] = c;
- } else {
- flush_buffer();
- }
- }
- //Código fuente del loop principal:
- void loop() {
- while(Serial.available()>0) {
- char c = Serial.read();
- append_buffer(c);
- Serial.write(c);
- if(c=='\r'||c=='\n') {
- if(strstr(buffer,"FORWARD")!=0) {
- go_forward();
- }
- if(strstr(buffer,"REVERSE")!=0) {
- go_reverse();
- }
- if(strstr(buffer,"STOP")!=0) {
- stop_motor();
- }
- if(strstr(buffer,"LEFT")!=0) {
- turn_left();
- }
- if(strstr(buffer,"RIGHT")!=0) {
- turn_right();
- }
- if(strstr(buffer,"CENTER")!=0) {
- center_wheels();
- }
- flush_buffer();
- Serial.write("\r\n");
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement