documentacion-proceso:tecnologicos:rtc
Diferencias
Muestra las diferencias entre dos versiones de la página.
Ambos lados, revisión anteriorRevisión previaPróxima revisión | Revisión previaÚltima revisiónAmbos lados, revisión siguiente | ||
documentacion-proceso:tecnologicos:rtc [2016/01/16 01:09] – kz | documentacion-proceso:tecnologicos:rtc [2016/01/27 16:35] – brolin | ||
---|---|---|---|
Línea 1: | Línea 1: | ||
- | ****** | + | {{: |
+ | |||
+ | |||
+ | https:// | ||
+ | |||
+ | core for arduino sp8266 | ||
+ | |||
+ | ====== Circuito con RTC para Arduino ====== | ||
+ | |||
+ | Antes de empezar: | ||
+ | |||
+ | ** Comunicación I2C y SPI ** | ||
+ | |||
+ | ** I2C ** | ||
+ | |||
+ | I2C (Inter-integrated Circuit) es un bus de comunicaciones serie síncrona muy utilizado en la industria | ||
+ | |||
+ | ** Consideraciones | ||
+ | | ||
+ | | ||
+ | | ||
+ | |||
+ | {{: | ||
+ | |||
+ | |||
+ | Solo utiliza dos líneas para transmitir datos (SDA) y la señal de reloj (SCL) | ||
+ | |||
+ | //Los dispositivos de un bus I2C tienen una dirección única para cada uno, y que pueden clasificarse como maestros o como esclavos.// | ||
+ | |||
+ | - El ** maestro | ||
+ | - El ** esclavo **espera a que un maestro se comunique con el para generar la transferencia. | ||
+ | |||
+ | ** SPI ** | ||
+ | |||
+ | SPI(Serial Peripherial Interface) es un bus de comunicaciones serie síncrona usado para la transferencia serie síncrona usado para la transferencia de información entre circuitos integrados en equipos electrónicos. | ||
+ | |||
+ | ** Consideraciones ** | ||
+ | |||
+ | - Utiliza 3 líneas para transmitir (SDO), recibir (SDI) y para generar la señal de reloj (SCK). | ||
+ | - la señal de reloj la genera uno de los dispositivos (el que actúa de maestro). | ||
+ | - la linea de tierra debe ser común a todos los dispositivos (estar unida) | ||
+ | - Permite comunicación Full-Duplex y utiliza el modelo maestro-esclavo. | ||
+ | - Los dispositivos no tienen direcciones -> se utiliza una línea de control (CS -> Chip Select) para cada circuito integrado que tenga que ser controlado. | ||
+ | - La transferencia no se inicia con todos sino con un dispositivo concreto activando (por nivel bajo) su correspondiente línea SS. | ||
+ | |||
+ | {{: | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | ===== Esquema básico del circuito. ===== | ||
- | Esquema básico del circuito. | ||
{{: | {{: | ||
RTC o Reloj en Tiempo Real – Es un circuito electrónico especializado cuya función es mantener la hora y fecha actual en un sistema informático (ya sea con microcontrolador u otro tipo de CPU). Se caracteríza por tener un bajo consumo de energía y también normalmente su propia fuente de alimentación auxiliar. Normalmente al recurrir a este tipo de circuitos integrados obtenemos una mejor precisión del tiempo. Un ejemplo de dispositivos que incluyen relojes en tiempo real son las computadoras personales (PC). | RTC o Reloj en Tiempo Real – Es un circuito electrónico especializado cuya función es mantener la hora y fecha actual en un sistema informático (ya sea con microcontrolador u otro tipo de CPU). Se caracteríza por tener un bajo consumo de energía y también normalmente su propia fuente de alimentación auxiliar. Normalmente al recurrir a este tipo de circuitos integrados obtenemos una mejor precisión del tiempo. Un ejemplo de dispositivos que incluyen relojes en tiempo real son las computadoras personales (PC). | ||
+ | |||
+ | ===== Circuito ===== | ||
+ | |||
+ | |||
+ | {{: | ||
+ | |||
+ | ===== Codigo actualizado ===== | ||
+ | |||
+ | |||
+ | #include " | ||
+ | #include < | ||
+ | |||
+ | RTC_DS1307 RTC; | ||
+ | |||
+ | void setup() | ||
+ | { | ||
+ | Serial.begin(57600); | ||
+ | Wire.begin(); | ||
+ | RTC.begin(); | ||
+ | pinMode(13, OUTPUT); | ||
+ | if(!RTC.isrunning()) | ||
+ | { | ||
+ | // Serial.println(" | ||
+ | RTC.adjust(DateTime(__DATE__, | ||
+ | } | ||
+ | |||
+ | } | ||
+ | |||
+ | void loop() | ||
+ | { | ||
+ | DateTime now = RTC.now(); | ||
+ | /* | ||
+ | Serial.print(now.year(), | ||
+ | Serial.print('/' | ||
+ | Serial.print(now.month(), | ||
+ | Serial.print('/' | ||
+ | Serial.print(now.day(), | ||
+ | Serial.print(' | ||
+ | Serial.print(' | ||
+ | Serial.print(now.hour(), | ||
+ | Serial.print(':' | ||
+ | |||
+ | |||
+ | Serial.print(now.minute(), | ||
+ | Serial.print(':' | ||
+ | Serial.print(now.second(), | ||
+ | Serial.println(); | ||
+ | */ | ||
+ | |||
+ | if (now.hour() == 19) | ||
+ | { | ||
+ | if(now.minute() == 30) | ||
+ | { | ||
+ | digitalWrite(13, | ||
+ | } | ||
+ | if(now.minute() == 35) | ||
+ | { | ||
+ | digitalWrite(13, | ||
+ | delay(1000); | ||
+ | } | ||
+ | } | ||
+ | delay(1000); | ||
+ | } | ||