/*** Included libraries ***/
#include <BitbloqSoftwareSerial.h>
/*** Global variables and function definition ***/
uint8_t boton = 52;
uint8_t lediz = 51;
uint8_t leddch = 53;
bqSoftwareSerial puerto_serie(0, 1, 9600);
uint8_t potenciometro = A1;
uint8_t IN1izRetro = 3;
uint8_t IN2izAlante = 4;
uint8_t IN3dchRetro = 5;
uint8_t IN4dchAlante = 6;
uint8_t ENAiz = 8;
uint8_t ENBdch = 9;
int Piladirecion[100];
float leoboton = 1;
int marcha = 0;
float mover = 0;
auto Boton = digitalRead(boton);
float estado = 0;
auto Potenciometro = analogRead(potenciometro);
int i = 0;
void Borrotabla() {
i = 0;
while (i < 99) {
Piladirecion[i] = 0;
i = i + 1;
}
i = 0;
}
void motor() {
switch (marcha) {
case 0:
digitalWrite(lediz, LOW);
digitalWrite(leddch, LOW);
digitalWrite(IN1izRetro, LOW);
digitalWrite(IN2izAlante, LOW);
digitalWrite(IN3dchRetro, LOW);
digitalWrite(IN4dchAlante, LOW);
break;
case 1:
digitalWrite(lediz, LOW);
digitalWrite(leddch, HIGH);
digitalWrite(IN1izRetro, LOW);
digitalWrite(IN3dchRetro, HIGH);
digitalWrite(IN4dchAlante, LOW);
digitalWrite(IN2izAlante, HIGH);
break;
case 2:
digitalWrite(lediz, HIGH);
digitalWrite(leddch, HIGH);
digitalWrite(IN1izRetro, LOW);
digitalWrite(IN3dchRetro, LOW);
digitalWrite(IN2izAlante, HIGH);
digitalWrite(IN4dchAlante, HIGH);
break;
case 3:
digitalWrite(lediz, HIGH);
digitalWrite(leddch, LOW);
digitalWrite(IN1izRetro, HIGH);
digitalWrite(IN2izAlante, LOW);
digitalWrite(IN3dchRetro, LOW);
digitalWrite(IN4dchAlante, HIGH);
break;
case 4:
digitalWrite(lediz, LOW);
digitalWrite(leddch, LOW);
digitalWrite(IN4dchAlante, LOW);
digitalWrite(IN2izAlante, LOW);
digitalWrite(IN1izRetro, HIGH);
digitalWrite(IN3dchRetro, HIGH);
break;
}
}
void llenarpila() {
leoboton = Potenciometro;
while (Potenciometro == leoboton) {
Boton = digitalRead(boton);
while (digitalRead(boton) == 1) {
estado = 1;
}
if (estado == 1) {
Piladirecion[i] = Potenciometro;
i = i + 1;
estado = 0;
}
Potenciometro = map(analogRead(potenciometro), 0, 1020, 0, 5);
}
}
/*** Setup ***/
void setup() {
pinMode(boton, INPUT);
pinMode(lediz, OUTPUT);
pinMode(leddch, OUTPUT);
puerto_serie.begin(9600);
pinMode(potenciometro, INPUT);
pinMode(IN1izRetro, OUTPUT);
pinMode(IN2izAlante, OUTPUT);
pinMode(IN3dchRetro, OUTPUT);
pinMode(IN4dchAlante, OUTPUT);
pinMode(ENAiz, OUTPUT);
pinMode(ENBdch, OUTPUT);
analogWrite(ENAiz, 120);
analogWrite(ENBdch, 120);
Borrotabla();
}
/*** Loop ***/
void loop() {
Potenciometro = map(analogRead(potenciometro), 0, 1023, 0, 5);
puerto_serie.print(analogRead(potenciometro));
puerto_serie.println(Potenciometro);
marcha = 0;
// motor();
switch (int(Potenciometro)) {
case 0:
digitalWrite(lediz, LOW);
digitalWrite(leddch, LOW);
mover = digitalRead(boton);
while (digitalRead(boton) == 1) {
}
if (mover == 1) {
i = 0;
while (Piladirecion[i] > 0) {
marcha = Piladirecion[i];
motor();
delay(500);
i = i + 1;
}
mover = 0;
Borrotabla();
}
marcha = 0;
motor();
break;
case 1:
digitalWrite(lediz, HIGH);
digitalWrite(leddch, LOW);
llenarpila();
break;
case 2:
digitalWrite(lediz, HIGH);
digitalWrite(leddch, HIGH);
llenarpila();
break;
case 3:
digitalWrite(lediz, LOW);
digitalWrite(leddch, HIGH);
llenarpila();
break;
case 4:
digitalWrite(lediz, LOW);
digitalWrite(leddch, LOW);
llenarpila();
break;
}
}
#include <BitbloqSoftwareSerial.h>
/*** Global variables and function definition ***/
uint8_t boton = 52;
uint8_t lediz = 51;
uint8_t leddch = 53;
bqSoftwareSerial puerto_serie(0, 1, 9600);
uint8_t potenciometro = A1;
uint8_t IN1izRetro = 3;
uint8_t IN2izAlante = 4;
uint8_t IN3dchRetro = 5;
uint8_t IN4dchAlante = 6;
uint8_t ENAiz = 8;
uint8_t ENBdch = 9;
int Piladirecion[100];
float leoboton = 1;
int marcha = 0;
float mover = 0;
auto Boton = digitalRead(boton);
float estado = 0;
auto Potenciometro = analogRead(potenciometro);
int i = 0;
void Borrotabla() {
i = 0;
while (i < 99) {
Piladirecion[i] = 0;
i = i + 1;
}
i = 0;
}
void motor() {
switch (marcha) {
case 0:
digitalWrite(lediz, LOW);
digitalWrite(leddch, LOW);
digitalWrite(IN1izRetro, LOW);
digitalWrite(IN2izAlante, LOW);
digitalWrite(IN3dchRetro, LOW);
digitalWrite(IN4dchAlante, LOW);
break;
case 1:
digitalWrite(lediz, LOW);
digitalWrite(leddch, HIGH);
digitalWrite(IN1izRetro, LOW);
digitalWrite(IN3dchRetro, HIGH);
digitalWrite(IN4dchAlante, LOW);
digitalWrite(IN2izAlante, HIGH);
break;
case 2:
digitalWrite(lediz, HIGH);
digitalWrite(leddch, HIGH);
digitalWrite(IN1izRetro, LOW);
digitalWrite(IN3dchRetro, LOW);
digitalWrite(IN2izAlante, HIGH);
digitalWrite(IN4dchAlante, HIGH);
break;
case 3:
digitalWrite(lediz, HIGH);
digitalWrite(leddch, LOW);
digitalWrite(IN1izRetro, HIGH);
digitalWrite(IN2izAlante, LOW);
digitalWrite(IN3dchRetro, LOW);
digitalWrite(IN4dchAlante, HIGH);
break;
case 4:
digitalWrite(lediz, LOW);
digitalWrite(leddch, LOW);
digitalWrite(IN4dchAlante, LOW);
digitalWrite(IN2izAlante, LOW);
digitalWrite(IN1izRetro, HIGH);
digitalWrite(IN3dchRetro, HIGH);
break;
}
}
void llenarpila() {
leoboton = Potenciometro;
while (Potenciometro == leoboton) {
Boton = digitalRead(boton);
while (digitalRead(boton) == 1) {
estado = 1;
}
if (estado == 1) {
Piladirecion[i] = Potenciometro;
i = i + 1;
estado = 0;
}
Potenciometro = map(analogRead(potenciometro), 0, 1020, 0, 5);
}
}
/*** Setup ***/
void setup() {
pinMode(boton, INPUT);
pinMode(lediz, OUTPUT);
pinMode(leddch, OUTPUT);
puerto_serie.begin(9600);
pinMode(potenciometro, INPUT);
pinMode(IN1izRetro, OUTPUT);
pinMode(IN2izAlante, OUTPUT);
pinMode(IN3dchRetro, OUTPUT);
pinMode(IN4dchAlante, OUTPUT);
pinMode(ENAiz, OUTPUT);
pinMode(ENBdch, OUTPUT);
analogWrite(ENAiz, 120);
analogWrite(ENBdch, 120);
Borrotabla();
}
/*** Loop ***/
void loop() {
Potenciometro = map(analogRead(potenciometro), 0, 1023, 0, 5);
puerto_serie.print(analogRead(potenciometro));
puerto_serie.println(Potenciometro);
marcha = 0;
// motor();
switch (int(Potenciometro)) {
case 0:
digitalWrite(lediz, LOW);
digitalWrite(leddch, LOW);
mover = digitalRead(boton);
while (digitalRead(boton) == 1) {
}
if (mover == 1) {
i = 0;
while (Piladirecion[i] > 0) {
marcha = Piladirecion[i];
motor();
delay(500);
i = i + 1;
}
mover = 0;
Borrotabla();
}
marcha = 0;
motor();
break;
case 1:
digitalWrite(lediz, HIGH);
digitalWrite(leddch, LOW);
llenarpila();
break;
case 2:
digitalWrite(lediz, HIGH);
digitalWrite(leddch, HIGH);
llenarpila();
break;
case 3:
digitalWrite(lediz, LOW);
digitalWrite(leddch, HIGH);
llenarpila();
break;
case 4:
digitalWrite(lediz, LOW);
digitalWrite(leddch, LOW);
llenarpila();
break;
}
}