Go Down

Topic: Problema entre Atmega328 y Atmega328p (Read 2547 times) previous topic - next topic

surbyte

yo veo que los accionamientos son muy veloces.
250 mseg muy rápido
500 mseg me gusta mas.

NOTA: gracias por corregir lo de la imágen. 

noter

Lo que hay que evaluar es si realmente hay alguna diferencia desde el momento en que inicia la secuencia (setup), porque hasta ese punto, el estado de todos los pines es indefinido, y por tanto tanto el relé como los led pueden tener parpadeos aleatorios. Descartando el segundo aproximadamente de divagaciones del bootloader, si una vez que inicia el setup encendido/apagado de los tres led consecutivos, el comportamiento del relé es distinto, o se produce algún reseteo, supongo que habría que achacarlo al hardware; pero lo veo poco probable.

surbyte

#32
May 26, 2016, 06:07 am Last Edit: May 26, 2016, 06:08 am by surbyte
Prueba este código con ambos y nos cuentas.

Code: [Select]
int ledGps = 9;
int ledGsm = 10;
int ledSms = 11;
int relevador = 8;

void setup() {
Serial.begin(9600);
Serial.println("Iniciando el diagnóstico.");
Serial.println("Configuro salidas y apago reles.");

pinMode(ledGps, OUTPUT);
pinMode(ledGsm, OUTPUT);
pinMode(ledSms, OUTPUT);
pinMode(relevador, OUTPUT);

digitalWrite(ledGps, LOW);
digitalWrite(ledGsm, LOW);
digitalWrite(ledSms, LOW);
digitalWrite(relevador, LOW);

Serial.println("Iniciando el diagnóstico.")
}//end void setup

void loop() {
//Diagnostico
Serial.println("Prueba de LEDs y rele a 250 mseg");
Serial.println("4 veces LEDGps a 250mseg");
for (byte i=0; i<4; i++) {
Serial.print("Prueba : ")
Serial.prinln(i);
digitalWrite(ledGps, HIGH);
delay(250);
digitalWrite(ledGps, LOW);
delay(250);
}

Serial.println("4 veces LEDGsm a 250mseg");
for (byte i=0; i<4; i++) {
Serial.print("Prueba : ")
Serial.prinln(i);
digitalWrite(ledGsm, HIGH);
delay(250);
digitalWrite(ledGsm, LOW);
delay(250);
}

Serial.println("4 veces LEDSms a 250mseg");
for (byte i=0; i<4; i++) {
Serial.print("Prueba : ")
Serial.prinln(i);
digitalWrite(ledSms, HIGH);
delay(250);
digitalWrite(ledSms, LOW);
delay(250);
}

Serial.println("8 veces relevador a 500 mseg");
for (byte i=0; i<8; i++) {
Serial.print("Prueba : ")
Serial.prinln(i);
digitalWrite(relevador, HIGH);
delay(500);
digitalWrite(relevador, LOW);
delay(500);
}
}//end loop


Nada prohibe que usemos el puerto serie para ver que pasa.
Tampoco que sea o no repetitivo usando las rutinas en el loop indefinidamente.

Go Up