el suceso extraño es cuando paso la mano por el Arduino se activan cosas raras o conecto un cable sin nada de corriente...???tengo otro problema con un código me va como loco hace cosas raras
int DCH = 6; // intermitente derecho
int IZQ = 9; // intermitente izquierdo
int POS = 5; // posicion
int LEDD = 3; // led derecho
int LEDI = 2; // led izquierdo
//Pin donde está conectada la tira de leds
#include <Adafruit_NeoPixel.h>
#ifdef __AVR__
#include <avr/power.h> // Required for 16 MHz Adafruit Trinket
#endif
int NUMPIXELS = 40; //Número de leds conectados
int delayval = 100; // Tiempo de espera
int delayvalI = 15;
int apagado = 0;
int encendido = 0;
void setup() {
// put your setup code here, to run once:
// put your setup code here, to run once:
#if defined(__AVR_ATtiny85__) && (F_CPU == 16000000)
clock_prescale_set(clock_div_1);
#endif
Serial.begin(9600);
//pinMode(IZQ, INPUT); //Entrada de señal intermitente izquierdo
//pinMode(DCH, INPUT); //Entrada de señal intermitente dewrecho
//pinMode(POS, INPUT); //entrada de posicion
pinMode(LEDD, OUTPUT); // Salida que alimenta a la tira LED DERECHA, tanto para intermitencia como de posición
pinMode(LEDI, OUTPUT); // Salida que alimenta a la tira LED IZQUIERDA, tanto para intermitencia como de posición
pinMode(POS,INPUT_PULLUP);
pinMode(IZQ,INPUT_PULLUP);
pinMode(DCH,INPUT_PULLUP);
}
void posicion_DCH() {
digitalWrite(LEDD, HIGH);
Adafruit_NeoPixel pixels_POS = Adafruit_NeoPixel(NUMPIXELS, LEDD, NEO_GRB + NEO_KHZ800); //Con esta función ponemos los LED en BLANCO
pixels_POS.begin(); // Inicialización
pixels_POS.show(); // Inicializa pixels apagados
//Encender led
uint32_t color = pixels_POS.Color(250, 250, 250); // Verde
for (int i = 0; i < NUMPIXELS && (digitalRead(POS) == HIGH); i++) {
pixels_POS.setPixelColor(i, color);
}
pixels_POS.show(); // Mostrar el color establecido
}
void posicion_IZQ() {
digitalWrite(LEDI, HIGH);
Adafruit_NeoPixel pixels_POS = Adafruit_NeoPixel(NUMPIXELS, LEDI, NEO_GRB + NEO_KHZ800); //Con esta función ponemos los LED en BLANCO
pixels_POS.begin(); // Inicialización
pixels_POS.show(); // Inicializa pixels apagados
//Encender led
uint32_t color = pixels_POS.Color(250, 250, 250); // Verde
for (int i = 0; i < NUMPIXELS && (digitalRead(POS) == HIGH); i++) {
pixels_POS.setPixelColor(i, color);
}
pixels_POS.show(); // Mostrar el color establecido
}
void intermitencia_DCH() {
digitalWrite(LEDD, HIGH);
Adafruit_NeoPixel pixels_INT = Adafruit_NeoPixel(NUMPIXELS, LEDD, NEO_GRB + NEO_KHZ800);
pixels_INT.begin(); // Inicialización
pixels_INT.show(); // Inicializa pixels apagados
for (int j = 0; j < NUMPIXELS; j++) {
if (j < NUMPIXELS) {
//Encender led
pixels_INT.setPixelColor(j, 145, 20, 0); // Brillo moderado de color rojo
pixels_INT.show(); // Envia la orden al hardware
delay(delayvalI);
} else {
j = 0;
}
}
}
void intermitencia_IZQ() {
digitalWrite(LEDI, HIGH);
Adafruit_NeoPixel pixels_INT = Adafruit_NeoPixel(NUMPIXELS, LEDI, NEO_GRB + NEO_KHZ800);
pixels_INT.begin(); // Inicialización
pixels_INT.show(); // Inicializa pixels apagados
for (int j = 0; j < NUMPIXELS; j++) {
if (j < NUMPIXELS) {
//Encender led
pixels_INT.setPixelColor(j, 145, 20, 0); // Brillo moderado de color rojo
pixels_INT.show(); // Envia la orden al hardware
delay(delayvalI);
} else {
j = 0;
}
}
}
void loop() {
while (digitalRead(POS) == HIGH){
while ((digitalRead(DCH) == LOW) && (digitalRead(IZQ) == LOW)) {
Serial.print("encendido1 _5: ");
Serial.println(encendido);
encendido = encendido +1;
posicion_DCH();
posicion_IZQ();
}
while ((digitalRead(DCH) == HIGH) && (digitalRead(IZQ) == LOW)) {
Serial.print("encendido2 _5y6: ");
Serial.println(encendido);
encendido = encendido +1;
posicion_IZQ();
intermitencia_DCH();
}
while ((digitalRead(DCH) == LOW) && (digitalRead(IZQ) == HIGH)) {
Serial.print("encendido3 _5y9: ");
Serial.println(encendido);
encendido = encendido +1;
posicion_DCH();
intermitencia_IZQ();
}
//while ((digitalRead(DCH) == HIGH) && (digitalRead(IZQ) == HIGH)) {
//intermitencia_DCH();
//intermitencia_IZQ();
// }
}
while (digitalRead(POS) == LOW){
while ((digitalRead(DCH) == HIGH) && (digitalRead(IZQ) == LOW)) {
Serial.print("encendido4 _6: ");
Serial.println(encendido);
encendido = encendido +1;
intermitencia_DCH();
}
while ((digitalRead(DCH) == LOW) && (digitalRead(IZQ) == HIGH)) {
Serial.print("encendido5 _9: ");
Serial.println(encendido);
encendido = encendido +1;
delay(delayval);
intermitencia_IZQ();
}
while ((digitalRead(DCH) == HIGH) && (digitalRead(IZQ) == HIGH)) {
Serial.print("encendido6 _6y9: ");
Serial.println(encendido);
encendido = encendido +1;
intermitencia_IZQ();
intermitencia_DCH();
}
}
}
//posicion_DCH();
//posicion_IZQ();
//intermitencia_DCH();
//intermitencia_IZQ();escribe o pega el código aquí
Copy of Surprising Borwo.pdf (9,3 KB)