pero usaste el flag para parar el motor?
acabo de probar el codigo que dejaste de prueba y funciona bien, un poco adaptado porque no tengo arduino, tengo un esp32
tu codigo:
el codigo para esp32 usasndo el touch con flag:
sin flag:
acabo de probar el codigo que dejaste de prueba y funciona bien, un poco adaptado porque no tengo arduino, tengo un esp32
tu codigo:
Código:
void setup() {
pinMode(7,OUTPUT); //motor
pinMode(26,OUTPUT); // sentido giro
pinMode(20,INPUT); //reed switch
pinMode(14,INPUT_PULLUP); //boton
Serial.begin(115200);
attachInterrupt(digitalPinToInterrupt(20), sumarPulsosM1, CHANGE);
}
int boton = 0;
void sumarPulsosM1() {
digitalWrite(7, LOW);
detachInterrupt(digitalPinToInterrupt(20)); //aca para la interrupcion
}
void loop() {
boton = digitalRead(14);
if (boton == 0){
Serial.println("pulso");
delay(100);
digitalWrite(7,HIGH);
delay(1000);
}
}
el codigo para esp32 usasndo el touch con flag:
Código:
int threshold = 40;
byte button;
byte motor= 2;
bool flag= 1;
void gotTouch1(){
flag=0;
}
void setup() {
Serial.begin(115200);
pinMode(2,OUTPUT); //motor
digitalWrite(2, 1);
touchAttachInterrupt(T7, gotTouch1, threshold);
}
int boton = 1;
void loop(){
Serial.println(digitalRead(motor));
if(flag==0){
digitalWrite(2, 0);
}
if (boton == 0){
flag=1;
Serial.println("pulso");
delay(50);
digitalWrite(2,HIGH);
}
}
sin flag:
Código:
int threshold = 40;
byte button;
byte motor= 2;
bool flag= 1;
void gotTouch1(){
digitalWrite(2, 0);
}
void setup() {
Serial.begin(115200);
pinMode(2,OUTPUT); //motor
digitalWrite(2, 1);
touchAttachInterrupt(T7, gotTouch1, threshold);
}
int boton = 0;
void loop(){
Serial.println(digitalRead(motor));
if (boton == 0){
Serial.println("pulso");
delay(50);
digitalWrite(2,HIGH);
}
}