Control e robótica

tecnoloxia.org

Contador mellorado

contadorsenled_fluxo

Descrición

Utilizaremos a función while para que agarde ata que soltemos o pulsador. Será entón cando realicemos o rexistro no contador. Desta maneira evitamos que se rexistren varios pulsos cada vez que prememos.

reboteAdemais, introduciremos un pequeno tempo de espera de 0,02s delay(20); para solucionar os problemas dun posible efecto rebote no pulsador (O pulsador emite varios pulsos cada vez que prememos nel ou cando o soltamos)

A función while(condición) { proceso } podemos escribila sen poñer ningún proceso entre parénteses, substituíndoo por un “;”: while(condición); . Iso significa que non se executa ningunha función mentres agarda a que se deixe de cumprir a condición establecida. Imos velo con dous exemplos:

Programas:

1. Contador

1. Contador: Imos facer un contador de xeito que cada vez que prememos nun pulsador suma 1. Os valores visualizámolos na consola serie.

2. Contador con LED

2. Contador con LED: O programa é o mesmo que o anterior, pero engadimos un LED que indica que se realiza un pulso.

Propostas:

  1. Contador descendente: Fai un contador descendente, de maneira que empecemos por 10 e cada vez que prememos no pulsador se desconte un punto.
  2. Potencias de 2: A partir dun valor inicial 2, fai un contador que multiplique por 2 cada vez que prememos no pulsador. Utiliza o tipo de variable long (32 bits) para a variable “conta” no canto de int (16 bits) para que poida almacenar máis valores.
  3. LEDs: Engade un LED vermello e un verde coas súas resistencias ao programa do contador. Cando o número de pulsos está entre 1 e 5 acéndese o LED verde. Cando é maior que 5 pulsos apágase o LED verde e acéndese o vermello.
  4. Contador con escintileos: Fai un contador de maneira que cando premes nun pulsador suma 1 ao contador, e ademais un LED escintila tantas veces como valor teña o contador.
Tweet about this on TwitterShare on FacebookShare on Google+Email this to someone


     

Deixa unha resposta

Required fields are marked *.