Control e robótica

tecnoloxia.org

Medindo o tempo

cristal_oscilador_arduino

[By oomlout CC By-SA from wikimedia]

Descrición

Non imos falar un sensor deses que conectamos externamente, senón que se trata de utilizar o reloxo interno do Arduíno para poder medir o tempo e realizar algunha acción en función desa medida. Arduíno leva un cristal que oscila a 16 MHz ou 16.000.000 veces por segundo e a través da función milis() (referencia) podemos medir o tempo transcorrido desde que se acendeu a placa.

Se utilizamos un delay(tempo); para realizar esperas, o Arduíno non poderá facer nada durante ese intervalo de tempo, nin medir un sensor, nin mover un servo, … nada! estará esperando, e iso pode que non nos interese en determinados programas.

Imaxina o caso do proxecto da porta de garaxe. Queremos que, despois de aberta, a porta se peche automaticamente cando transcorreu un determinado tempo ou cando lle damos ao pulsador de pechar. Se programamos un delay(tempo); xa podemos pulsar no mando o que queiramos que a porta non se vai pechar, pois o Arduíno estará agardando e non executará nese tempo ningunha outra acción. Unha solución sería iniciar a medida do tempo cando a porta estea aberta e detectar o tempo transcorrido desde entón para proceder ao peche.

Montaxe

Imos programar os exemplos cun LED e un pulsador. Logo deberás adaptar ti os programas en función do que necesites facer.

Programas

1. Medir o tempo

1. Medir o tempo: Nesta práctica imos ver como medir o tempo desde que a placa está acesa e mostralo na consola serie.

2. Despois dun tempo

2. Despois dun tempo: Mediante un pulsador imos acender un LED. Despois dun intervalo de tempo (5 segundos) vaise apagar. Creamos unha variable para visualizar o cronómetro na consola cando se activa.

Utilizamos “int” e non “unsigned long” porque imos pasar o tempo a segundos.

3. Escintileo sen delay

3. Escintileo sen delay: Nesta práctica imos programar o escintileo dun led sen utilizar a función delay(tempo);. Pode ser útil no caso de necesitar que non se deteña a execución doutros programas debido á presencia do delay.

Propostas

  1. Segundo pulsador: No programa “Despois dun tempo” engade un segundo pulsador de xeito que o LED se apague cando transcorra o intervalo de tempo establecido ou premamos no segundo pulsador, independentemente do tempo.
  2. Cronómetro: Fai un cronómetro cun pulsador de marcha e outro de parada. Empezará en 0 e mostrará o tempo ata a parada. Os datos deben mostrarse na consola no formato minutos:segundos (mm:ss). Cando funcione móstrao nunha pantalla LCD.
  3. Conta atrás: Podes facer unha versión do cronómetro conta atrás. Incorpora un pulsador de axuste de xeito que cada vez que prememos aumenta o intervalo 10 segundos. Unha vez seleccionado o tempo a descontar, prememos no pulsador de marcha e vai descontando segundos ata chegar a cero. Nese intre soa unha alarma. Faino tamén para unha pantalla LCD.

 

Tweet about this on TwitterShare on FacebookShare on Google+Email this to someone


     

Deixa unha resposta

Required fields are marked *.