Go Down

Topic: Contador 0 a 15 ascendente y descendente 4 bits (Read 280 times) previous topic - next topic

Revax

Jan 22, 2018, 02:44 am Last Edit: May 21, 2018, 11:19 pm by surbyte
Buenas tardes, quisiera ver si me pudieran ayudar tengo que realizar un contador de 0 a 15 y que este se regrese a 0, he buscado por internet codigos y eso, cabe mencionar que no se nada de programacion  :(

Este codigo es el que encontre.
Espero su ayuda, gracias.

Code: [Select]
const byte ledPin[] = {2,3,4,5};     //Leds a utilizar
int count=0; //contador
unsigned long changeTime;         //contador de tiempo

void setup() {
 for (int x=0; x<10; x++) {
   pinMode(ledPin[x], OUTPUT);  //los preparamos para salida
 }
}

void loop() {
 if ((millis() - changeTime) > 1000) {   //si ha pasado 1000 milisegundos contar uno mas
   count ++;
   setNumber();                                   //ponemos el numero en los leds
   changeTime = millis();                     //inicia el condador de tiempo a 0
 }
}

void setNumber (){
 if (count>15) count = 0;                     //volver a empezar si es mayor de 4 bits

 for (int i = 0; i<4;i++)  //para cada bit mira si tiene que encender el led correspondiente
   digitalWrite(ledPin[i], (count >> i) & 1);
 }

Kike_GL

Este es típico problema planteado por un profesor a sus alumnos cuando quiere iniciarlos en la programación, por eso nadie te resolvió tu tarea.

Solo para futuras búsquedas dejo la solución aquí:

Code: [Select]

bool sube = true;
void setup() {
   Serial.begin(9600);
}

void loop() {
   if (sube){
      for (byte i=0; i<=15; i++){
         Serial.println(i);
      }
      sube = false;
   }else{
      for (byte i=15; i>=0; i--){
         Serial.println(i);
      }
      sube = true;
   }
}
Saludos, Kike_GL

Go Up