gl gl es ca gl gl gl gl es gl en gl es en pt ceb gl gl gl gl gl gl gl en id ja id gl gl es es es es nl es es gl gl gl es gl gl gl gl gl gl en gl es es gl gl gl pt es gl gl gl pt pt en gl ar es gl en en en gl gl gl ca gl ca gl gl gl gl gl gl gl gl it gl gl gl gl gl gl gl gl gl gl en it es es gl es gl es es gl pt en gl gl ca fr fr gl gl gl pt es sv es gl sv pt en gl hu en gl gl en gl it it es uk pt gl gl gl gl gl en gl gl es gl gl vi gl gl gl gl es es gl gl gl gl gl it gl es
Medindo o tempo 2: RTC – Arduino
Un módulo RTC (Real Time Clock) ou “Reloxo de tempo real” consiste nun circuíto integrado alimentado por unha batería que rexistra en todo momento a data, o día da semana e o tempo, así como un reloxo dixital convencional. Resulta interesante utilizalo cando queremos que a data, día da semana, e a hora estean sempre dispoñibles independentemente da alimentación da tarxeta arduino.
Hai moitos modelos. O que temos no taller é o reloxo DS1302.
O módulo RTC DS1302 comunícase co microprocesador a través dunha interface serie. Temos 5 pins, os dous de alimentación (VCC 5V e GND 0V) e os tres de envío de datos (CLK, DAT, RST) que imos conectar nos seguintes pins:
Necesitamos instalar a librería que controla o módulo RTC. Podes descargala aquí: DS1302.zip.
Para programar podes utilizar as seguintes variables:
1. Mostrar o tempo
1. Mostrar o tempo: Imos mostrar a data, a hora e o día da semana na consola serie.
// Librarías: #include   // Declaración de variables: DS1302 rtc(8,7,6); // DS1302 rtc(RST_PIN, IO_PIN, CLK_PIN); Time t; // Inicia unha variable t con estrutura de datos de tempo // Configuración: void setup() { Serial.begin(9600); // inicia a comunicación serie. /* Estas ordes soamente se usan a primeira vez para poñer en hora o reloxo Introduce a data e horas actuais, quita os comentarios e carga o programa Comenta estas instrucións e volve cargar o programa */ // rtc.setTime(14, 50, 00); // Configurar hora en formato 24hs con min y seg: 13:28:00 HORAS. // rtc.setDate(26, 4, 2021); // Configurar fecha en formato dia/mes/año: 28/6/2018. // rtc.setDOW(MONDAY); } // Programa: void loop() { t = rtc.getTime(); // Colle os datos de tempo do reloxo DS1302 e dalle ese valor á variable t Serial.print("Data:"); Serial.print(rtc.getDOWStr()); // Imprime o día da semana Serial.print(" "); Serial.print(rtc.getDateStr()); //imprime a data Serial.print(" - Hora:"); Serial.println(rtc.getTimeStr()); //imprime a hora delay(2000); //lectura cada 2 segundos /* Tamén podemos chamar ás variables por separado. Por exemplo: Serial.print("hora:"); Serial.println(t.hour); */ }
2. programar acendido/apagado: Agora imos facer que un led se acenda e se apague en períodos de tempo determinados por nós. Por exemplo, neste programa, acendemos un LED cando o minuteiro marca desde 50 ata 55 minutos. Se non estará apagado.
// Librarías: #include   // Declaración de variables: DS1302 rtc(8,7,6); // DS1302 rtc(RST_PIN, IO_PIN, CLK_PIN); Time t; // Inicia unha variable t con estrutura de datos de tempo int led = 13; // LED no pin 13 // Configuración: void setup() { pinMode(led, OUTPUT); // Configura o LED como saída Serial.begin(9600); // inicia a comunicación serie. /* Estas ordes soamente se usan a primeira vez para poñer en hora o reloxo Introduce a data e horas actuais, quita os comentarios e carga o programa Comenta estas instrucións e volve cargar o programa */ // rtc.setTime(14, 50, 00); // Configurar hora en formato 24hs con min y seg: 13:28:00 HORAS. // rtc.setDate(26, 4, 2021); // Configurar fecha en formato dia/mes/año: 28/6/2018. // rtc.setDOW(MONDAY); // Configurar o sía da semana } // Programa: void loop() { t = rtc.getTime(); // Colle os datos de tempo do reloxo DS1302 e dalle ese valor á variable t Serial.print("Hora:"); Serial.println(rtc.getTimeStr()); //imprime a hora delay(2000); //lectura cada 2 segundos if (t.min >= 50 && t.min<=55){ digitalWrite(led, HIGH); } else{ digitalWrite(led, LOW); } }
Proba o segundo programa do led, pero nun período de minutos que se achegue ao deste momento. Por exemplo, se agora son as 9:20 prográmao para que se acenda de 9:25 a 9:27.
Fai que un led se acenda cada día desde as 10h e 30 min ata as 11h en punto.
Fai que un led se acenda cada luns desde as 16 ata as 19h.
Descrición de Arduíno UNO
O IDE de Arduíno
Entradas e saídas dixitais
Condicional if … else
Sinais PWM e lectura serial
Array de LEDs e funcións
A posición dun servo
Servos de xiro continuo
Motor de corrente continua
Motores paso a paso
Sensor de Luz LDR
Sensor de temperatura LM35 e TMP36
Sensor de temperatura e humidade DHT11
Sensor de temperatura DS18B20
Sensor de movemento PIR
Sensor de cor TCS3200
Sensor de cor TCS34725 RGB
Sensor de auga no solo
Medindo o tempo 1
Medindo o tempo 2: RTC
Bluetooth mestre + escravo
O tanque de auga
Reloxo de area dixital
A máquina máis inútil
Clasificador M&M’s por cor
Alarma para a cortadora láser
© 2022 Arduino • Creado con GeneratePress