Am modificat ceas-ul GPS sa pot regla ora locala, in primul rand pentru a corecta ora vara/iarna, dar si pentru a fi util si celor ce locuiesc in alte zone, eu limitand la UTC-12 pana la UTC+12, dar pentru cei din zone peste acestea, pot modifica usor din soft, la limite.
Eu am adaugat 2 butoane fara retinere, unul pentru crestere valoare si unul pentru scadere valoare ora locala. Butonul pentru crestere este conectat la D12, iar cel de scadere este la D11, restul schemei ramane neschimbata (vezi articolul Ceas GPS).
Dupa ce m-am familiarizat cu receptorul GPS model NEO-6M (vedeti articolul precedent), am adaptat un program pentru a avea un vitezometru cu indicatii de ora si pozitie.
Cand viteza este mica, sub 10km/h, in dreapta apaare mesajul "viteza" si "km/h", iar caracterele vitezei sunt mari (am pus in articolul precedent link-uri).
Am pus initial, montajul in bord, pentru a compara viteza cu cea a vitezometrului masinii:
apoi in locul telefonului si am comparat valorile cu ale unei navigatii, rezultatele fiind foarte bune.
Cu ocazia testelor, am facut si cateva filmulete, dar in unele nu se vad bine indicatiile de pe afisaj
PS: Informatiile sunt receptionate de la satelitii GPS la 2-3 minute de la alimentarea montajului, asa ca in cel mai fericit caz aveti informatii despre ora. De asemenea, am observat ca numarul satelitilor de la care receptioneaza receptorul semnal nu este indicata uneori sau este indicata incorect.
Montajul a fost facut cat mai 'transportabil", montand socluri pentru Arduino Nano si conectori XH2.54 pentru receptorul GPS si afisaj (mai am o mufa Pentru un debitmetru, care nu se foloseste in aceasta aplicatie).
Puteti vedea cum se afiseaza informatiile am facut urmatoarele 2 filmulete:
Deoarece sunt multe proiecte, mai simple sau mai complexe, cu placile de dezvoltare Arduino, un neinitiat poate sa se sperie... am cautat un tutorial pentru incepatori, dar nu am gasit, asa ca voi face eu unul.
Sa zicem ca nu ati luat o placa Arduino Uno, ci una Arduino Nano... modul de functionare este similar.
Daca alimentati dintr-o mufa USB de la PC sau laptop, pe placa este un led aprins, care indica alimentarea placii, iar unul va clipi odate pe secunda. Dupa cum se constata, ledul ce se aprinde cu intermitenta este cel conectat la pinul digital numit D13, printr-o rezistenta la masa.
Dupa ce vom capata un pic de experienta, vom realiza montaje pe breadboard
Urmatorul pas important este descarcarea programului ce ne ajuta la scrierea si incarcarea programelor in placa de dezvoltare Arduino.
Bun, dupa instalarea programului, avand placa conectata, trebuie sa fim siguri ca s-a instalat driver-ul interfetei USB, care, in cazul acestei placi este un CH340:
Daca am rezolvat acest pas, vom alege placa Arduin Nano
cu portul activ
alegem versiunea cu "old bootloader"
observand in coltul din dreapta jos informatiile
Daca ati reusit sa urmati acesti pasi cu rezultate similare (clar va fi alt port), putem trece la modificarea programului BLINK, care se gaseste la exemplele venite cu programul Arduino IDE:
In prima faza, nu vor urmari structura programelor (sketch-urilor) Arduino, ci vom modifica o valoare dintr-o linie, si anume delay(1000); care inseamna o pauza de 1 secunda (1000ms)
acasta linie este pusa dupa aprinderea ledului, care este, in programul original delay(1000), iar noi o vom modifica in delay(100), adica o intrarziere de 0,1secunde
Deoarece am scos doar un zero, nu ar trebui sa fie probleme, dar vom verifica oricum, prin compilarea programului
care ar trebui sa se termine cu mesajul
Urmeaza incarcarea programului in placa Arduino Nano
care se incheie cu mesajul
Dupa ce ati trecut prin acesti pasi cu succes, puteti incerca si alte variante de programe, cu efecte de stingere/aprindere ale ledului de la D13, acestea se gasesc pe canalul meu de Github, la adresa https://github.com/tehniq3/blink
Pentru cei care sunt obisnuiti sa reproduca experimentele din filmulete, am facut si eu unul:
Deoarece versiunea anterioara avea un mic "defect", schimband intensitatea luminoasa a afisajului matriceal foarte repede daca erau variatii bruste ale luminii din mediu apropiat, am corectat asta in fisierul LEDMatrixV2ro4.ino din subdirectorul LEDMatrixV2ro4.