Zoeken in deze blog

woensdag 10 november 2010

HamKlok One vervolg 2

Nu we de hardware zo goed als klaar hebben lijkt het verstandig om eens te gaan kijken of we de Arduino met zijn microprocessor aan het werk kunnen krijgen.
We beginnen simpel, nou ja simpel, we beginnen met zo min mogelijk inspanning en zoveel mogelijk resultaat.

KLOK uitlezen methode 1


Tijdens deze eerste stap gaan we de klok( RTC ) opstarten met een beginwaarde.
Daarna starten we de klok
Daarna gaan we de klok elke seconde uitlezen en presenteren de tijd en datum nog niet op het display maar in een speciaal venstertje op de PC.
Het klok IC geeft de volgende informatie : 10:12:44 19-9-2010 en de dag van de week 1-7.
Om de klok vanaf een bepaald moment te laten beginnen moet de beginwaarde naar het klok IC gestuurd worden. ( dit hoeft maar eenmalig te gebeuren !)
Door het gebruik van de back-up batterij blijft de info daarna 3 jaar bewaard!
Om dit alles voor elkaar te krijgen moeten we een programma in de Arduino laden wat we zelf moeten schrijven.
Om een programma te schrijven moeten we de Arduino programmeer omgeving op de pc installeren. Hiervoor moeten we de software ophalen bij Arduino software of bij Arduino informatie bij de laatste is ook een schitterend programmeer manual en een werkboek aanwezig waaruit veel valt te leren!!!
(KLIK op gele gedeelte voor download !)

Als dit gelukt is kan je vanaf nu minimaal dit..... op je pc scherm verwachten.
in het witte gedeelte moet het programma geschreven worden waarbij een aantal spelregels gelden. Deze spelregels hebben betrekking op de programma opbouw en op de programma syntax (de opdrachten/commando's). Het hiervoor genoemde programma manual is echt een aanrader om dit deel onder de knie te krijgen.

Het programma
Het is een goede gewoonte om met commentaar te beginnen:

/*Leest het RTC ic van Dallas DS1307 en stuur info naar terminal venster.
 *Naar een idee van  D. Sjunnesson 1scale1.com d.sjunnesson (at) 1scale1.com
 *Let wel op dat de bibliotheken (de .h bestanden !) voorkomen in de libraries folder
 *Zo niet ophalen bij www.arduino.cc en naar deze folder copieren !!!
*/

Nu komt een stukje waarbij we aangeven van welke bibliotheken we gebruik maken.
Een bibliotheek bestaat uit voorgebakken code geschikt voor hergebruik. 

// Kijk hier wordt de bibliotheek aangesproken!

#include <WProgram.h>
#include <Wire.h>
#include <DS1307.h> // written by  mattt on the Arduino forum and modified by D. Sjunnesson

Nu een blokje wat eenmalig wordt doorlopen, in dit geval voornamelijk bedoeld om het terminal venster te activeren en de klok gelijk te zetten.

// Dit is het deel wat eenmalig wordt doorlopen 
  void setup()
{
 //Eerst even het terminal venster opstarten!!
  Serial.begin(9600);
  
 //gelijk zetten van de klok
  //dit eenmalig naar Arduino bordje sturen !!
  //bij testen de tweede maal regels als commentaar zetten!

  RTC.stop();
  RTC.set(DS1307_SEC,50); //seconden
  RTC.set(DS1307_MIN,14);//minuten
  RTC.set(DS1307_HR,20);  //uren
  RTC.set(DS1307_DOW,3);//dag van de week
  RTC.set(DS1307_DATE,10);//dag van de maand
  RTC.set(DS1307_MTH,11);//maand
  RTC.set(DS1307_YR,10);//jaar
  RTC.start();
}

En het eigenlijke programma, het ophalen van de informatie en presenteren in het terminal venster.

//Hier begint het eigenlijke programma!
 void loop()
{
  Serial.print(RTC.get(DS1307_HR,true)); //haal uur op en stuur naar terminalvenster
  Serial.print(":");
  Serial.print(RTC.get(DS1307_MIN,false));//haal minuten op en stuur naar terminalvenster
  Serial.print(":");
  Serial.print(RTC.get(DS1307_SEC,false));//haal seconden op en stuur naar terminalvenster
  Serial.print("      ");                 // ruimte maken
  Serial.print(RTC.get(DS1307_DATE,false));//haal datum op en stuur naar terminalvenster
  Serial.print("/");
  Serial.print(RTC.get(DS1307_MTH,false));//haal maand op en stuur naar terminalvenster
  Serial.print("/");
  Serial.print(RTC.get(DS1307_YR,false)); //read year 
  Serial.print("     ");
  Serial.print(RTC.get(DS1307_DOW,false)); //haal weeekdag op en stuur naar terminalvenster
  Serial.println();
  delay(1000); //1000 usec wachten
}


Als je de gekleurde delen overneemt naar het witte deel in het Arduino venster is het programma geschreven.
Waarschijnlijk klopt de tijd en datum niet maar die kan jezelf in het setup deel veranderen.

De volgende stap is het uploaden naar het Arduino printje. Als de usb kabel is aangesloten is het uploaden simpel druk op de upload knop

en na een minuut of zo zie je DONE UPLOADING. op je pc scherm.

Nu kijken of alles werkt, door het terminal venster te openen.

En als alles goed gaat is dit het resultaat!

Dit brengt ons bij het einde van de eerste methode,de klok RTC werkt.
Met dit eerste succes kunnen we verder bouwen ! En de uitgelezen tijd naar het LED display sturen. Maar voordat we daar aan beginnen eerst maar een nachtje slapen !






Geen opmerkingen:

Een reactie posten