60
Fare Elettronica n. 365/366 Aprile/Maggio 2016 pag. 1 leggi Fare Elettronica su n. 365/366 Aprile/Maggio 2016 A A g g g g i i u u n n g g i i a a m m o o u u n n a a C C a a m m e e r r a a a a l l B B a a n n a a n n a a P P i i M M i i s s u u r r a a t t o o r r e e d d i i r r e e s s i i s s t t e e n n z z a a i i n n t t e e r r n n a a b b a a t t t t e e r r i i e e ( ( 2 2 ) ) O O r r o o l l o o g g i i o o s s v v e e g g l l i i a a c c o o n n A A r r d d u u i i n n o o A A r r d d u u i i n n o o O O P P T T O O , , l l i i p p e e r r b b o o l l e e d d e e l l l l a a a a u u t t o o c c o o s s t t r r u u z z i i o o n n e e Ricezione del segnale DCF77 con il PIC16F887 G G E E N N E E R R A A T T O O R R E E D D I I F F R R E E Q Q U U E E N N Z Z A A C C O O N N U U N N P P I I C C

GENERATOREDIFREQUENZA CONUNPIC - Fare Elettronica · 2016. 6. 7. · Fare Elettronica n. 365/366 Aprile/Maggio 2016 pag. 10 MISURATORE DI RESISTENZA INTERNA BATTERIE (SECONDA PARTE)

  • Upload
    others

  • View
    10

  • Download
    1

Embed Size (px)

Citation preview

Page 1: GENERATOREDIFREQUENZA CONUNPIC - Fare Elettronica · 2016. 6. 7. · Fare Elettronica n. 365/366 Aprile/Maggio 2016 pag. 10 MISURATORE DI RESISTENZA INTERNA BATTERIE (SECONDA PARTE)

Fare Elettronica n. 365/366 ­ Aprile/Maggio 2016 ­ pag. 1

leggi Fare Elettronica su

n. 365/366 ­ Aprile/Maggio 2016

AAggggiiuunnggiiaammoo uunnaa CCaammeerraa aallBBaannaannaa PPiiMMiissuurraattoorree ddii rreessiisstteennzzaaiinntteerrnnaa bbaatttteerriiee ((22))OOrroollooggiioo­­ssvveegglliiaa ccoonn AArrdduuiinnooAArrdduuiinnoo““OOPPTTOO””,, ll’’iippeerrbboolleeddeellllaa aauuttooccoossttrruuzziioonnee

Ricezione del segnale DCF77

con il PIC16F887

GGEENNEERRAATTOORREE DDII FFRREEQQUUEENNZZAA

CCOONN UUNN PPIICC

Page 2: GENERATOREDIFREQUENZA CONUNPIC - Fare Elettronica · 2016. 6. 7. · Fare Elettronica n. 365/366 Aprile/Maggio 2016 pag. 10 MISURATORE DI RESISTENZA INTERNA BATTERIE (SECONDA PARTE)

Fare Elettronica n. 365/366 ­ Aprile/Maggio 2016 ­ pag. 2

Fare Elettronica n. 365/366 ­ Aprile/Maggio 2016SOMMARIO

AGGIUNGIAMO UNA CAMERA AL BANANA PIdi Ivan Scordato

Come collegare e configurare un ottimo modulo camera al nostro amatoBanana Pi, per realizzare un'infinità di progetti interessanti.

MISURATORE DI RESISTENZA INTERNA BATTERIE (2)di Grazia Ancona

Seconda parte dell'articolo dedicato a coloro che hanno l’esigenza diverificare in dettaglio lo stato di salute di singoli elementi o di interi pack.

GENERATORE DI FREQUENZA CON UN PICdi Giovanni Carrera

Argomento di questo progetto è un generatore di onda quadra la cuifrequenza, impostata da un encoder, varia da 4 Hz a 20 kHz.

3L'Editorialedi Giovanni Di Maria

4

10

17RICEZIONE E DECODIFICA DEL DCF77 UTILIZZANDOIL TIMER1 DEL PIC16F887 DELLA MICROCHIPdi Alberto Trasimeni

Tutte le tecniche e gli algoritmi per ricevere il famoso e potente segnale orariotedesco con un microcontrollore PIC.

30OROLOGIO­SVEGLIA CON ARDUINOdi Girolamo D’Orio

Ecco un orologio­sveglia che non teme i blackout momentanei. Mantiene inmemoria l’orario corrente, di allarme e lo stato di attivazione sveglia.

41ARDUINO “OPTO”, L’IPERBOLE DELLAAUTOCOSTRUZIONEdi Roberto Vallini

In questo articolo tratteremo approfonditamente il tema dell’autocostruzione,rapportata alle nuove tecnologie embended. La stazione saldante andrà indisuso? Addio “Millefori”? Forse sì, ma per il momento, c’è chi, come unreduce di guerra, porta alta la bandiera del suo reggimento e difende “l’anticoprofumo” di stagno fuso.

50

Novità! da questo numero gli articoli vengono categorizzati seguendo la legenda:

Progetti Smart Home DivulgazionescientificaPP SS DD

Page 3: GENERATOREDIFREQUENZA CONUNPIC - Fare Elettronica · 2016. 6. 7. · Fare Elettronica n. 365/366 Aprile/Maggio 2016 pag. 10 MISURATORE DI RESISTENZA INTERNA BATTERIE (SECONDA PARTE)

Fare Elettronica n. 365/366 ­ Aprile/Maggio 2016 ­ pag. 3

Fare Elettronica è partita proprio alla grande e il 2016 inizia con una grandenotizia. Focalizzando soprattutto l'attenzione alla comunicazione, IEcloud, lacommunity dei progettisti elettronici e di Fare Elettronica, è stata acquisita daTecnoimprese / Assodel. Si tratta di un passo molto importante in quanto idue canali si aggiungono al sito Fortronic.net, alla rivista A&V Elettronica, aglieventi EW&D Fortronic, Power Fortronic e Illuminotronica, completando cosìla copertura del target di tecnici, progettisti, decision maker e buyerdell’elettronica. Per maggiori informazioni si può consultare il seguentecomunicato stampa all'indirizzo:http://assodel.it/piu­comunicazione­nellelettronica/Mi sento di augurare una proficua attività a tutti gli Autori. La rivista diAprile/Maggio 2016 presenta, come sempre, tanti articoli interessanti e moltenovità saranno proposte nei prossimi numeri. Grazia Ancona concludel'articolo sul misuratore di resistenza interna per batterie. Ivan Scordatoillustra come collegare un modulo Camera al Banana Pi, per acquisire videodi buona qualità. Alberto Trasimeni spiega come ricevere il segnale orariotedesco con un PIC. Giovanni Carrera presenta un interessante progetto pergenerare frequenze con un microcontrollore. Girolamo D'Orio propone unaprima versione di orologio con Arduino, promettendo un ampioapprofondimento in uno dei prossimi numeri. Infine Roberto Vallini fa il puntodella situazione dell'elettronica di ieri e di oggi con una serie si interessantiesperimenti. Gli articoli, a partire da questo numero, saranno contrassegnaticon dei bollini colorati, il cui significato può essere desunto nell'indice. Buonalettura a tutti.

Giovanni Di Maria

L'Editorialedi Giovanni Di Maria

Grandi novità in casa Fare Elettronica

Page 4: GENERATOREDIFREQUENZA CONUNPIC - Fare Elettronica · 2016. 6. 7. · Fare Elettronica n. 365/366 Aprile/Maggio 2016 pag. 10 MISURATORE DI RESISTENZA INTERNA BATTERIE (SECONDA PARTE)

Fare Elettronica n. 365/366 ­ Aprile/Maggio 2016 ­ pag. 4

AGGIUNGIAMO UN MODULO CAMERA ALNOSTRO BANANA PI

di Ivan Scordato

Negli articoli precedenti abbiamo visto dettagliatamente in cosa consiste ilBanana Pi, come funziona e come configurarlo.Oggi invece, come già accennato, trattiamo un argomento che puòsuscitare l'interesse di molti: vedremo come collegare e configurare unottimo modulo camera al nostro amato Banana Pi, potendo realizzare cosìun'infinità di progetti interessanti.

Molto più spesso di quanto si possapensare, nel momento in cui si staprogettando qualcosa che necessità diacquisire video di buona qualità, come adesempio un robot rover o un drone, sicommette un errore. Per cercare dirisparmiare, o chissà per quale motivo, sidecide di utilizzare una comunissimawebcam come fonte di acquisizione,senza considerare che come soluzionenon risulta essere delle migliori. Questoperchè, quando si vuole creare qualcosa

di funzionale con quel pizzico di valoreaggiunto che ogni vero Maker ama darealle proprie creazioni, bisogna utilizzaredei prodotti adatti al proprio scopo chesiano di buona qualità. Cercando onlineun modulo camera per il Banana Pi cherispecchi questi parametri, e che diconseguenza possegga delle buonecaratteristiche, ho trovato quello cheritengo essere un accessorio moltointeressante dal costo contenuto, cioè ilmodulo Camera con sensore di

Tabella 1: Caratteristiche

Sensore Immagine Omnivision 5640 CMOS ­ sensore di immagine inun modulo auto­focus con filtro IR integrato

Risoluzione 5 Megapixel

Formato matrice 2592x1944

Max frame rate 1080P 30fps 24Mhz

Formati immagine JPEG PNG YUV420 RGB888

Formati video Raw h.264

Connettore per Banana Pi Interfaccia CSI­0 – Connettore40 pin FPC

Funzioni di controllo immagine Controllo dell'esposizione automatico (AEC)Bilanciamento del bianco automatico (AWB)Calibrazione livello dei neri automatica (ABLC)Banda dei filtri automaticaFunzione specchio e capovolto

Temperatura di funzionamento Funzionamento: ­30°C a 70°CImmagini stabili: 0°C a 50°C

Dimensioni lenti 1/4”

Dimensione 36x32x10 mm

Indirizzo I2C 0x78

Peso 8g

SS

Page 5: GENERATOREDIFREQUENZA CONUNPIC - Fare Elettronica · 2016. 6. 7. · Fare Elettronica n. 365/366 Aprile/Maggio 2016 pag. 10 MISURATORE DI RESISTENZA INTERNA BATTERIE (SECONDA PARTE)

Fare Elettronica n. 365/366 ­ Aprile/Maggio 2016 ­ pag. 5

immagine OV5640 da 5 Megapixel. Lacamera in questione si presenta comequella di figura 2. E le caratteristiche delmodulo sono riportate in tabella 1.Caratteristiche niente male per unmodulo camera dal peso di 8g e che puòessere facilmente agganciato a quelloche vogliamo. Adesso vedremo cosabisogna fare per collegarlo e settarlo sulBanana Pi.

Collegamento HardwarePer effettuare questo collegamento ènecessario utilizzare il cavetto flat dato indotazione.Connettere questo modulo camera alnostro Banana Pi è davvero semplice,infatti basterà collegarlo al connettoreCON1 (Camera Serial Interface) presentesulla scheda, un connettore FPC 40 pinche può essere utilizzato per collegare unmodulo camera con mappatureappropriate. Prima di tutto bisogna girareil modulo con l'obiettivo puntato versol'alto e quindi anche con il connettore in

alto. Vedrete che è numerato da 0 a 40da destra verso sinistra. Adesso, semprecon molta delicatezza, bisogna sollevarela linguetta nera del connettore senzaforzarla, facendole assumere al massimoun angolo di 90°; inserire il cavetto flatcon I contatti rivolti verso il basso eabbassare di nuovo la linguetta nera, inmodo da tenere fermo il cavetto.Maneggiando questo modulo, quello chenon posso finire di ripetermi è che ledimensioni ridottee del Banana Pi e delmodulo Camera, pongono le basiessenziali per realizzare dei progetti chenecessitano di componenti con unadimensione ridotta, come ad esempio unsistema di navigazione per robot e per larilevazione di immagini ad alta quota condei palloni sonda.

Figura 2: Modulo camera Figura 3: CON1 sul Banana Pi

Page 6: GENERATOREDIFREQUENZA CONUNPIC - Fare Elettronica · 2016. 6. 7. · Fare Elettronica n. 365/366 Aprile/Maggio 2016 pag. 10 MISURATORE DI RESISTENZA INTERNA BATTERIE (SECONDA PARTE)

Fare Elettronica n. 365/366 ­ Aprile/Maggio 2016 ­ pag. 6

Page 7: GENERATOREDIFREQUENZA CONUNPIC - Fare Elettronica · 2016. 6. 7. · Fare Elettronica n. 365/366 Aprile/Maggio 2016 pag. 10 MISURATORE DI RESISTENZA INTERNA BATTERIE (SECONDA PARTE)

Fare Elettronica n. 365/366 ­ Aprile/Maggio 2016 ­ pag. 7

Configurazione SoftwarePer i vari test che ho eseguito, houtilizzato il sistema operativo Lubuntu,ma naturalmente ognuno è libero diutilizzare quello che preferisce. Dopoavere collegato fisicamente la camera alBanana Pi, il primo passo da fare perutilizzarla è quello di installare i drivernecessari per il suo interfacciamento,digitando i seguenti comandidirettamente sulla riga di comando otramite il terminale:

sudo modprobe ov5640

sudo modprobe sun4i_csi

In questo modo, dopo aver digitato lapassword per eseguire l'operazione comesuperuser, basterà confermare loscaricamento dei driver. Se per caso ilsecondo comando (modprobe sun4i_csi)non dovesse funzionare, provate con:

sudo modprobe sun4i_csi0

Adesso per testare il correttofunzionamento del modulo camera èpossibile utilizzare il software Mplayer,digitando:

mplayer tv: //

La libreria API per questo modulo cameraè ancora in fase di sviluppo, ma èpossibile sviluppare un proprioprogramma per elaborare i dati dellafotocamera.

Esempio praticoAbbiamo appena visto quanto è sempliceinterfacciare questo modulo camera alnostro computer embedded e il fatto chele sue caratteristiche lo rendono idealeper essere utilizzato, per esempio, percontrollare a distanza un robot rover o undrone, o come videocamera disorveglianza. Non volendovi lasciaresoltanto con un concetto di idea in testa,adesso vedremo come bisogna effettuarela configurazione base per lo streamingvideo. Per questo test utilizzeremo ilprogramma MJPG­streamer, chepermette di trasmettere video instreaming, raggiungibile tramite unsemplice browser o un programma per lariproduzione video, come ad esempioVLC o MPLAYER. Per seguire leistruzioni questo paragrafo senzaproblemi è necessario avere già installatosul Banana Pi un server LAMP, come giàspiegato in un articolo precedente. Perinstallare MJPG­streamer, dopo avereeseguito l'accesso sul terminale comesuperuser, bisogna digitare nel terminalequanto segue:

apt­get install libjpeg8­devimagemagick libv4l­dev

ln ­s/usr/include/linux/videodev2.h/usr/include/linux/videodev.h

cd /home/bananapi/

git clonehttps://github.com/vfonov/mjpg­streamer

cd mjpgstreamer

Figura 4: Modulo collegato

Page 8: GENERATOREDIFREQUENZA CONUNPIC - Fare Elettronica · 2016. 6. 7. · Fare Elettronica n. 365/366 Aprile/Maggio 2016 pag. 10 MISURATORE DI RESISTENZA INTERNA BATTERIE (SECONDA PARTE)

Fare Elettronica n. 365/366 ­ Aprile/Maggio 2016 ­ pag. 8

mjpgstreamer# make cleaninstall

Se tutto è andato a buon fine, alla fine diqueste operazioni dovrebbero appariredelle informazioni simili alle seguenti:

install ­­mode=755mjpg_streamer /usr/local/bin

install ­­mode=644input_uvc.so output_file.sooutput_udp.so input_file.so/usr/local/lib/

install ­­mode=755 ­d/usr/local/www

install ­­mode=644 ­D www/*/usr/local/www

Per compilare e avviare il programmadigitiamo:

tar xzvf mjpg­streamer.tgz

cd mjpg­streamer

make clean all

export LD_LIBRARY_PATH=.

./mjpg_streamer ­o

"output_http.so ­w ./www"

mjpg_streamer ­i "input_uvc.so­y" ­o "output_http.so ­w/home/bananapi/mjpg­streamer/www/"

Nel caso in cui si dovessero riscontraredegli errori, cambiate i permessi dellacartella WWW e riprovate. Questaoperazione possiamo farla direttamentedal terminale, digitando:

chmod 755 www

chmod 644 www

Adesso per vedere lo streaming videotramite un web browser basterà andareall'indirizzo<IP_ADDRESS_BANANA_PI>:8080 emuoversi sulla voce streaming, mentre sevogliamo vederlo tramite mplayer,l'indirizzo che dovremo inserire sulprogramma è<IP_ADDRESS_BANANA_PI>:8080/?action=stream&ignored.mjpg.

Questo presentato è solo un esempiobase di applicazione; nel caso in cuidoveste decidere di implementarequalcosa di simile nel vostro progetto,dovrete adattarlo in base alle vostreesigenze.

ConclusioneSono rimasto abbastanza soddisfattovisto che adesso potrò sbizzarrirmirealizzando qualsiasi progetto che miverrà in mente, potendo implementareuna camera che ha tutte le carte inregola per essere definita come lacamera adatta ai Makers che amano ilBanana Pi. Purtroppo attualmente lostato di sviluppo del software del modulocamera non è molto avanzato, e questocomporta che bisogna un po arrangiarsi,ma il vero Maker ama complicarsi la vita,quindi questo non è un problema.Buona sperimentazione!

Figura 5: Interfaccia MJPG­STREAM

Page 9: GENERATOREDIFREQUENZA CONUNPIC - Fare Elettronica · 2016. 6. 7. · Fare Elettronica n. 365/366 Aprile/Maggio 2016 pag. 10 MISURATORE DI RESISTENZA INTERNA BATTERIE (SECONDA PARTE)

Fare Elettronica n. 365/366 ­ Aprile/Maggio 2016 ­ pag. 9

Page 10: GENERATOREDIFREQUENZA CONUNPIC - Fare Elettronica · 2016. 6. 7. · Fare Elettronica n. 365/366 Aprile/Maggio 2016 pag. 10 MISURATORE DI RESISTENZA INTERNA BATTERIE (SECONDA PARTE)

Fare Elettronica n. 365/366 ­ Aprile/Maggio 2016 ­ pag. 10

MISURATORE DI RESISTENZA INTERNABATTERIE (SECONDA PARTE)

di Grazia Ancona

L’utilizzo massivo di dispositivi portatili (cellulari, computer, ecc.) unito ad una forteesigenza di miniaturizzazione hanno portato la tecnologia delle batterie ricaricabili a livelliche solo 20 anni addietro sembravano impensabili. D’altro canto, sono aumentate leesigenze di manutenzione e controllo dei pack batterie stessi. Questo articolo è dedicato atutti coloro che, per motivi hobbistici o professionali, hanno l’esigenza di verificare indettaglio lo stato di salute di singoli elementi o di interi pack.

Descrizione del circuitoPrima di passare all’analisi dello schemaelettrico sarà bene mostrare lecaratteristiche del nostro misuratore:

•Portata: da 1 mΩ a 1,2 Ω;•Escursione tensione della batteria in test:da 1,2 V a 13,8 V (nominali);•Temperatura d’esercizio: da 0 a 50°(centigradi);•Massimo errore di lettura: 4% (tipico 2%);•Lettura: diretta, su multimetro digitale(portata VDC, 1 mV = 1 mΩ) con almeno 3cifre decimali ed impedenza non inferiore a250 K Ω;•Massima capacità di batteria misurabilecon affidabilità: fino a 6 Ah (circa);•Alimentazione: Pila da 9 V tipo 6LR61oppure 1604A (entrambe tipo alcalina);•Indicatore di bassa tensione batteria: aLED (opzionale).

E’ molto importante sottolineare che sipossono sottoporre al test soltanto batteriecon carica pari o superiore all’80% circa.Inoltre, essendo la resistenza interna moltoinfluenzata dalla temperatura, le proveandrebbero fatte nell’ambiente d’esercizio.Quest’ultimo concetto è valido anchequando si vogliono comparare fra loro tipidiversi di accumulatori: questa operazioneva fatta con le batterie alle stessecondizioni di temperatura (se necessario,lasciarle acclimatare per qualche minuto).Come si evince leggendo le caratteristiche,il nostro strumento necessita, per la letturadel risultato, di un multimetro digitale conportata in Volt. Questa soluzione, che

conferisce al tutto grande semplicità edeconomicità, parte dal presupposto che uncomune tester digitale è ormai parte delcorredo minimo di ogni hobbistaelettronico. Inoltre, l’uso della scala a VoltDC, non richiede ulteriori calcoli in quantola lettura è diretta: 1 mV è pari ad 1 mΩ. Illettore esperto potrà progettare per suoconto un eventuale visualizzazione sudisplay LCD, previa conversione A/Dnaturalmente. In questo caso si dovràanche prevedere un fattore di scalavariabile da 1200:1 ma, come bensappiamo, nulla resiste alla buonavolontà… Fatte queste premesse,possiamo passare al dettaglio dellesoluzioni circuitali scelte, prima, però,saràmeglio dare un’occhiata allo schema ablocchi. Esso è visibile in figura 9. Il primoblocco a sinistra è un normalissimooscillatore ad onda quadra che ha ilcompito di produrre un segnale, aventeduty­cicle simmetrico, dal periodo di circa20 ms. La semionda a livello alto di questosegnale chiuderà ciclicamente l’interruttoredel carico a corrente costante (secondoblocco da sinistra) consentendo, allabatteria sotto test, di erogare una correnteben precisa per tutta la durata dell’impulso(circa 10 ms). Una corrente molto piùdebole è invece prelevata sul livello basso,si tratta della corrente di stabilizzazione acui abbiamo già accennato. Il gradino dicorrente così ottenuto genera, a causadella resistenza interna della batteria, unasegnale alternato avente la stessageometria della funzione sopra accennata(onda quadra). Tale forma d’onda èprelevata a valle del condensatore di

PP

Page 11: GENERATOREDIFREQUENZA CONUNPIC - Fare Elettronica · 2016. 6. 7. · Fare Elettronica n. 365/366 Aprile/Maggio 2016 pag. 10 MISURATORE DI RESISTENZA INTERNA BATTERIE (SECONDA PARTE)

Fare Elettronica n. 365/366 ­ Aprile/Maggio 2016 ­ pag. 11

Figura 9: Schema a blocchi

blocco C, esso ha il non trascurabilecompito di eliminare la componentecontinua (tensione di batteria) noninteressante ai fini della misura. Lapresenza di C impone di “fissare” il segnale(ovvero restituirgli la sua intrinsecacomponente continua) ed a questo compitoè chiamato un diodo “ideale”. Un normalediodo shottky non avrebbe risolto ilproblema poiché il suo potenziale diconduzione, a polarizzazione diretta, nonsarebbe mai stato inferiore a 0,16 V.Valore, quest’ultimo, ben superiore al mVche noi dovremmo leggere nella misura piùsensibile prevista! Il blocco seguente èincaricato di trasformare il segnale ad ondaquadra in una componente continua pari alvalore di cresta della semionda positiva. Insostanza, un vero e proprio “peak detector”(rivelatore di valore massimo). Possiamoanche considerare questa sezionecircuitale una specie di memoria analogicache si “rinfresca” ogni 10 ms. Ultima fatica,chiudere questa tensione su un carico arelativamente bassa impedenza in modoche un eventuale voltmetro, con la suaresistenza interna comunque presente, nondisturbi i valori di tensione misurati. Tuttoquesto si traduce nello schema elettrico difigura 10. Passiamo adesso al dettaglio deivari blocchi da un punto di vista piùspecificatamente elettronico. Il generatore

di onda quadra è un “sempre verde” NE555(fare attenzione ad usare la versioneC/MOS e non quella TTL!) nella suaconfigurazione astabile. Per ottenere ilduty­cicle al 50% si è reso necessariol’impiego del diodo D1. Il segnale uscente èapplicato a due partitori: che hanno ilcompito di ridurre la semionda positiva a110 mV e di mantenere il potenziale diquella negativa a 10 mV circa. Questi duevalori di tensione, una volta applicati algeneratore di corrente costante formato daU2 e Q1, serviranno a prelevare un gradinodi corrente alla batteria sotto test. Inparticolare, dato il valore di R7 pari a 0,1Ohm, il primo genererà una corrente pari a1,1 A (livello alto) mentre il secondo siaccontenterà di una corrente più modesta:0,1 A (livello basso). Mantenere un“piedistallo” di corrente durante la partebassa del segnale di pilotaggio ha lo scopodi fornire, come ampiamente accennato,una corrente di stabilizzazione necessariaper una misura accurata. Dovendo esserel’ampiezza della corrente prelevata in fasedi misura pari a d 1 A, condizionenecessaria per mantenere una perfettaequivalenza Volt­Ohm in fase di lettura,occorrerà aggiungere a tale valore i 100mA sopra citati. Il gruppo RC formato daR5 e C4 e posti all’uscita di U2, ha ilcompito di rendere più stabile

Page 12: GENERATOREDIFREQUENZA CONUNPIC - Fare Elettronica · 2016. 6. 7. · Fare Elettronica n. 365/366 Aprile/Maggio 2016 pag. 10 MISURATORE DI RESISTENZA INTERNA BATTERIE (SECONDA PARTE)

Fare Elettronica n. 365/366 ­ Aprile/Maggio 2016 ­ pag. 12

Figura 10: Schema elettrico

l’operazionale e di escludere eventualiauto­oscillazioni. Passiamo ora al diodo“ideale”, esso si serve dell’operazionale U3configurato in forma canonica per questotipo d’applicazione. Con taleschematizzazione, il diodo D2, quandointeressato da polarizzazione diretta,conduce anche con segnali di pochi µV. Idiodi D3 e D4 hanno invece semplicifunzioni di protezione. Essi devono evitareche alti valori di potenziale vadano achiudersi sugli ingressi degli operazionalinell’istante in cui colleghiamo la batteriasotto test. In figura 11 possiamo osservarela forma d’onda attestata sul pin 3 di IC3(ingresso non invertente) durante unamisura. Si noti come il segnale, essendo inregime di scarica capacitiva, mostri uncerto abbassamento durante il livello alto.Questo fattore è del tutto ininfluente ai finidella misura. Anche il circuito del “peak­detector” è svolto in maniera canonica,unica particolarità richiesta: il condensatoreC9 deve essere di ottima qualità epossibilmente in tecnologia alpolicarbonato. Un normale transistor2N2222 (anche il PN2222, equivalente

plastico, va bene lo stesso) realizza unbuffer di corrente ad alta stabilità la cuireazione in tensione è applicatadirettamente al pin invertente del nostropeak­detector”. In questo modo possiamoprelevare la tensione da misurare su uncarico a impedenza relativamente bassa,questa soluzione è necessaria per nonrischiare di falsare la misura di un voltmetroelettronico ad alta impedenza.L’alimentazione è stabilizzata da unregolatore a 3 terminali tipo L7805 mentreun banale circuito a soglia permettel’accensione di un LED non appena labatteria scende sotto 8,2 Volt circa. Questocircuito, tratteggiato nello schema elettricodi figura 10, è assolutamente opzionale.Nel caso si decida di escluderlo, nonandranno reperiti i componenti segnati daun asterisco nel part­list.

Note costruttive e taraturaEssendo la nostra realizzazione unostrumento, tutti i resistori saranno a stratometallico con tolleranza massima al 2%mentre, per le capacità si dovrannoscegliere tecnologie ad alta stabilità

Page 13: GENERATOREDIFREQUENZA CONUNPIC - Fare Elettronica · 2016. 6. 7. · Fare Elettronica n. 365/366 Aprile/Maggio 2016 pag. 10 MISURATORE DI RESISTENZA INTERNA BATTERIE (SECONDA PARTE)

Fare Elettronica n. 365/366 ­ Aprile/Maggio 2016 ­ pag. 13

(poliestere o propilene). Fanno eccezioneC5, C7 e C8 che, essendo shunt, dovrannoessere ceramici o multistrato ed andrannomontati molto vicino ai terminali dialimentazione di ogni operazionale. Questiultimi sono stati scelti per le loro eccellenticaratteristiche (rail­to­rail, bassissimaderiva, ecc.) e costo decisamente bassoma sono prodotti soltanto dalla BURR­BROWN. L’alimentazione potrà esserefornita anche da batterie ricaricabili al NiCdma, in questo caso, ne occorrerannoalmeno 7 da 1,2 Volt e DZ1 dovrà essereun BZX84C6V2 per consentire un avviso dibatteria scarica a tensione più bassa (circa7,4 Volt). R7 merita una nota a parte. Peravere un elemento ad alta stabilità saràmeglio disporre di 10 resistori a stratometallico da 1 Ohm ¼ di W posti inparallelo. Infatti, le normali resistenze a filoda 1 W, possono essere termicamente“rumorose” e disturbare le letture diresistenze serie nell’ordine dei pochi mΩ. IlMOSFET Q1 deve esserenecessariamente montato su dissipatore (èsconsigliabile interporre un isolante fra ilDRAIN e il dissipatore vero e proprio,meglio tenere isolato quest’ultimo dal restodel circuito) tenendo conto che, allamassima potenza ammissibile dallostrumento, esso dovrà dissipare unapotenza pari al 50% di 13,8V x 1,1A ovverocirca 8,5 W (corrente di stabilizzazionecompresa). Naturalmente il test avrà luogoin pochi secondi ma, considerata ladissipazione termica non trascurabile, sarà

necessaria una discreta superficie diraffreddamento pari ad almeno 50 cmq (sepriva di alettatura). Con alettature moltoelaborate questa superficie può ridursioppure, in caso di alimentazione conbatterie ricaricabili, potremmo inserire unaventolina miniatura. Per la taratura sononecessari i seguenti componenti estrumenti:

•Un Amperometro DC (possibilmentedigitale);•Un voltmetro digitale DC;•Un alimentatore con uscita pari almeno a6 V e corrente 2 A (in alternativa si puòusare una batteria efficiente con capacitànon inferiore a 6 Ah);•Un resistore da 1 W (minimo) di valorecompreso fra 0,1 e 0,15 Ohm;•Una batteria da misurare aventeresistenza interna sconosciuta.

Effettivamente, al posto dell’amperometro,potremo utilizzare un voltmetro in DC ma,dato che poi la misura sarebbe ai capi diR7, rimarremmo vincolati alla precisione diquesta per ottenere l’accuratezzanecessaria. Ovviamente, il costruttoresprovvisto di amperometro dovrànecessariamente ricorrere a quest’ultimametodica. Procedere come segue:

1.Collegare l’alimentazione ed attendereper circa 2 minuti;

2.Mettere in corto il ponticello J2 eleggere, con un voltmetro DC, la tensionesu TP1 e massa (vedi schema elettrico).Regolando P2 essa dovrà essere portata acirca 110 mV. Aprire quindi J2;

3.Mettere in corto il ponticello J1 eleggere, con un voltmetro DC, la tensionesu TP1 e massa (vedi schema elettrico).Regolando P1 essa dovrà essere portata acirca 10 mV. Scollegare quindil’alimentazione. Aprire quindi J1;

4.Collegare un alimentatore da banco alposto della batteria da misurare (attenzione

Figura 11: Segnale sul pin 3 di U4 (time­base 5 ms,20 mV/cm)

Page 14: GENERATOREDIFREQUENZA CONUNPIC - Fare Elettronica · 2016. 6. 7. · Fare Elettronica n. 365/366 Aprile/Maggio 2016 pag. 10 MISURATORE DI RESISTENZA INTERNA BATTERIE (SECONDA PARTE)

Fare Elettronica n. 365/366 ­ Aprile/Maggio 2016 ­ pag. 14

Page 15: GENERATOREDIFREQUENZA CONUNPIC - Fare Elettronica · 2016. 6. 7. · Fare Elettronica n. 365/366 Aprile/Maggio 2016 pag. 10 MISURATORE DI RESISTENZA INTERNA BATTERIE (SECONDA PARTE)

Fare Elettronica n. 365/366 ­ Aprile/Maggio 2016 ­ pag. 15

Elenco componenti

alla polarità!). Esso deve fornire unatensione compresa fra 3 e 6 VDC elimitatore di corrente, se presente, regolatoa 2 A minimo;

5. Aprire il ponticello SH1 (vedi schemaelettrico) ed inserire un amperometro. Fra

TP1 e TP2 (positivo su TP1). Ricollegarel’alimentazione e chiudere il ponticello J2.Regolare finemente P2 fino a leggere unacorrente pari a 1100 mA (oppure 110 mVDC ai capi di R7). Aprire quindi il ponticelloJ2;

Page 16: GENERATOREDIFREQUENZA CONUNPIC - Fare Elettronica · 2016. 6. 7. · Fare Elettronica n. 365/366 Aprile/Maggio 2016 pag. 10 MISURATORE DI RESISTENZA INTERNA BATTERIE (SECONDA PARTE)

Fare Elettronica n. 365/366 ­ Aprile/Maggio 2016 ­ pag. 16

6.Mettere in corto il ponticello J1 eregolare finemente P1 fino a leggere unacorrente pari a 100 mA (oppure 10 mV DCai capi di R7). Aprire quindi il ponticello J1;

7.Ripetendo la prova al punto 5),controllare nuovamente se la corrente èeffettivamente pari a 1100 mA. In casocontrario ritoccare leggermente P2;

8.Scollegare quindi l’alimentazione el’alimentatore da banco dai punti di misura.Chiudere il ponticello SH1 ed aprire iponticelli J1 e J2 se ancora chiusi.

A questo punto la taratura vera e propria èultimata, occorre solo verificare se lemisure prodotte sono esatte. A tal scopooccorrerà un accumulatore aventeresistenza interna ignota chesottoporremmo ad una misuraannotandone quindi il valore. Chiameremoquest’ultimo Rx. Adesso poniamo in serie alnostro accumulatore la resistenza di valorenoto compresa fra 0,1 e 0,15 Ohm, chechiameremo Rr, e ripetiamo la misura. Ilvalore letto sarà, chiamato Rtot sarà pari a:

Rtot = Rx + Rr

Essendo Rn nota, sarà facile verificarel’esattezza della misura. Facciamo unesempio pratico: Supponiamo che lamisura della batteria abbia fornito 55 mV,ovvero 55 mΩ. La seconda misura, con Rrin serie alla batteria e con valore pari a0,12 Ω , visualizza 177 mV, ovvero 177

mΩ.. Facendo un rapido calcolo:

Rx = Rtot – Rr

ovvero:

177 ­ 120 = 57

Valore che, a meno di un trascurabileerrore del 3,5%, ricalca quello ottenuto conla batteria senza la resistenza aggiuntiva(55 mΩ).

ConclusioneEra mia intenzione presentare un progetto“aperto” che potesse, nei limiti stabiliti dallafantasia e competenza del lettore, evolveremigliorando prestazioni e performance.Sebbene le norme di taratura possanosembrare un pochino troppo precise, vigarantisco che il tempo speso persemplificare processi e progetto è stato ilmassimo possibile. Lascio a voi il giudiziose questo obiettivo è stato colto in tutto o,almeno, in parte! Rimango come sempre avostra disposizione per chiarimenti econsigli.

BibliografiaHandbook of batteries di D. Linden e T. B.Reddy (McGraw­Hill)Comparison of several methods fordetermining internal resistance of LithiumIon Cells(Hans – Georg Schweiger ed altri)

Tabella 1: Esempi di resistenza interna (Rs) espressi per tecnologia e tipo di batteria

Page 17: GENERATOREDIFREQUENZA CONUNPIC - Fare Elettronica · 2016. 6. 7. · Fare Elettronica n. 365/366 Aprile/Maggio 2016 pag. 10 MISURATORE DI RESISTENZA INTERNA BATTERIE (SECONDA PARTE)

Fare Elettronica n. 365/366 ­ Aprile/Maggio 2016 ­ pag. 17

RICEZIONE E DECODIFICA DEL DCF77UTILIZZANDO IL TIMER1 DEL PIC16F887 DELLAMICROCHIP

di Alberto Trasimeni

La stazione DCF77, è gestita dal Physikalisch­Technische Bundesanstalt,e largamenteusata in Italia. La sigla significa: D=Deutschland (Germania), C=segnale ad onde lunghe,F=Francoforte, 77=Frequenza di 77,5 kHz.Il segnale orario trasmesso è dovuto ad unorologio atomico (al cesio) che si trova a Mainfingen distante circa 25Km da Francoforte. Ilsegnale è ben ricevibile a una distanza di 500 km, ma con una certa intermittenza (chedipende dalle caratteristiche atmosferiche di propagazione) e può essere ricevuto ad unadistanza massima di 1000 km. Se la distanza risulta essere superiore a 1000 km lasincronizzazione è difficile per non dire sporadica. Ad esempio nella città di Roma un buonricevitore riesce a sincronizzarsi sempre di notte e qualche volta anche di giorno, perquesto vengono usati due trasmettitori indipendenti da 50 kW ciascuno per consentire lacontinuità del servizio.

La realizzazione di un orologio basatosul DCF77 pone non pocheproblematiche al progettista, chedecide di scrivere partendo da zero ilproprio software di gestione delsegnale. Pur avendo a disposizione unbuon ricevitore fornitomi dalla dittaECAT di Mondovì è difficile ottenereuna ricezione ottimale durante il giorno,per questo ho usato un simulatore chemi ha permesso di svilupparel’algoritmo di ricezione in modosemplice. Il simulatore prevede difissare inizialmente a piacere l’ora e iminuti da cui far partire la trama ditrasmissione. Tale orario vienesuccessivamente incrementato edaggiornato ogni minuto, inoltre èpossibile introdurre dei disturbi nelsegnale trasmesso per renderlo più

credibile e al contempo verificare laqualità dell’algoritmo. Tutto ciò mi haconsentito con piccole correzioni divalidare il programma caricato nelmicrocontrollore. La figura 1 sottoriportata mette in evidenza la coperturadel segnale DCF77.

La struttura del segnaleDCF77La trasmissione del segnale, comeprecedentemente detto, si propagaagevolmente soprattutto di notte, ciò èdovuto al contributo della stratosferache si addensa in assenza dellaradiazione solare. La modulazioneusata è del tipo AM e la portante vieneinterrotta per 100 ms o 200 ms all’iniziodi ogni secondo, tali interruzionirappresentano rispettivamente il bittrasmesso. Vale a dire se l’interruzioneè di 100 ms si sta trasmettendo il bit “0”mentre se l’interruzione dura 200 ms sista trasmettendo il bit “1”.In sostanza inuscita dal ricevitore avremo quindi un“1” che dura 100 ms per rappresentarelo “0” oppure un “1” che dura 200msper rappresentare un “1”. Tali tempisono del tutto teorici, in quanto comevedremo più avanti oscillano con unavariazione +/­ del 10% rispetto ai valoriFigura 1; Segnale DCF77

PP

Page 18: GENERATOREDIFREQUENZA CONUNPIC - Fare Elettronica · 2016. 6. 7. · Fare Elettronica n. 365/366 Aprile/Maggio 2016 pag. 10 MISURATORE DI RESISTENZA INTERNA BATTERIE (SECONDA PARTE)

Fare Elettronica n. 365/366 ­ Aprile/Maggio 2016 ­ pag. 18

nominali, in relazione alle condizioniatmosferiche e alla distanza diricezione. Da quanto ora affermatoappare evidente che per decodificare ilsegnale, è necessario realizzare undiscriminatore temporale. Le soluzionipossibili possono essere due, di tipohardware o software; quella da merealizzata è una soluzione mista, infattiutilizzerò un semplice multivibratoremonostabile “retriggerabile”, perstabilire l’inizio della trama ditrasmissione, che avviene ogni minuto,delegando al timer1 del PIC16F887 ilcompito di realizzare il discriminatoretemporale, e quindi provvedere alladecodifica del segnale. Tuttal’informazione trasmessa dalla stazioneDCF77 avviene in 58 impulsi (uno alsecondo), il 59° impulso è soppressoad indicare che sta iniziando la tramadel minuto successivo. Come mostra la

figura 2, tutta l’informazione trasmessaè organizzata a gruppi di bit, e ciascungruppo trasporta una diversainformazione. Ad esempio, i minutisono trasmessi dall’impulso 21all’impulso 29, compreso il bit di paritàpari, di cui è necessario tenerne contoper il controllo dell’informazionericevuta. Un’osservazione è quellarelativa al bit 16 che ci dice che nell’orasuccessiva a quella di ricezione,entrerà in funzione l’ora solare/legale,ma tale informazione in effetti è giàcontenuta nella trama dell’orarioperché aggiornata automaticamente.Accennavo precedentemente al bit diparità, questo si troverà ad “1”, se ilnumero dei bit ricevuti pari ad “1”, adesempio nella ricezione deiminuti(escluso il bit di parità), è unnumero dispari, in modo tale che ilnumero dei bit ad “1” ricevuti in quel

Figura 2; Struttura del segnale DCF77

Page 19: GENERATOREDIFREQUENZA CONUNPIC - Fare Elettronica · 2016. 6. 7. · Fare Elettronica n. 365/366 Aprile/Maggio 2016 pag. 10 MISURATORE DI RESISTENZA INTERNA BATTERIE (SECONDA PARTE)

Fare Elettronica n. 365/366 ­ Aprile/Maggio 2016 ­ pag. 19

pezzo di trama risulti sempre pari. Isuccessivi bit di parità si troverannoall’impulso 35 per quanto riguarda leore e all’impulso 58 per quantoriguarda il datario. Pur avendo adisposizione il bit di parità percontrollare le informazioni ricevute,voglio sottolineare che ricevendo, adesempio, i minuti in modo errato,questo errore può essere compensatoda una ricezione non corretta delrelativo bit di parità. In questo casoaccetteremmo una informazione cherisulta errata, dovuta essenzialmentealla fragilità della trasmissione come

accennato in precedenza. Quindi se sivuole realizzare un orologiostatisticamente esatto è beneaffiancare al DCF77 un RTC (RealTime Clock) come ad esempioDS1307, che ci aiuti a stabilire seeffettivamente la ricezione delleinformazioni è avvenuta in modocorretto. Quando ciò avviene èpossibile caricare l’informazionerelativa all’orario al datario del DCF77nell’RTC. Lo schema di principio delsistema da me realizzato per laricezione della trasmissione è riportatonella figura sottostante, figura 3. Nella

Figura 3: Schema elettrico

Tabella 1: Funzione dei diodi Led

LED SIGNIFICATO STATO ATTIVO

D2 Segnalazione fine trama OFF

D3 Attività del sistema TOGGLE

D4 Segnalazione ricezione ore ON

D5 Segnalazione ricezione minuti ON

D6 Segnalazione ricezione datario ON

D7 Segnalazione ricezione errori ON

Page 20: GENERATOREDIFREQUENZA CONUNPIC - Fare Elettronica · 2016. 6. 7. · Fare Elettronica n. 365/366 Aprile/Maggio 2016 pag. 10 MISURATORE DI RESISTENZA INTERNA BATTERIE (SECONDA PARTE)

Fare Elettronica n. 365/366 ­ Aprile/Maggio 2016 ­ pag. 20

Page 21: GENERATOREDIFREQUENZA CONUNPIC - Fare Elettronica · 2016. 6. 7. · Fare Elettronica n. 365/366 Aprile/Maggio 2016 pag. 10 MISURATORE DI RESISTENZA INTERNA BATTERIE (SECONDA PARTE)

Fare Elettronica n. 365/366 ­ Aprile/Maggio 2016 ­ pag. 21

realizzazione pratica, come mostreròsuccessivamente, il simulatore è statosostituito con il ricevitore della dittaECAT di Mondovì. Il circuito checonsente la sincronizzazione con iltrasmettitore è costituito dalmultivibratore monostabileretriggerabile 74HC123. ll cuifunzionamento è assai semplice:portando il pin1 (A) al potenziale dimassa e il pin3 (MR) a Vcc edapplicando al pin2 (B) gli impulsiprovenienti dalla centralina (unimpulso ogni secondo) l’uscita pin4(QN) resta sempre bassa fintanto chegli impulsi sono presenti. Quando si

raggiunge il fine trama tra l’ultimoimpulso della trama attuale e il primodella successiva intercorre un tempodi due secondi, in queste condizioni (iltempo di caduta del monostabile è di1.1 sec) l’uscita QN si porta a livellologico “1” generando un interrupt(INTE) di inizio ricezione. Maconsideriamo anche il caso che dopoun l’interrupt di inizio ricezione, unimpulso dovesse essere assente perpiù di 1 secondo (prima della fine dellatrama), si genererà un secondointerrupt, segnalando almicrocontrollore che la trasmissione siè interrotta prima della fine, originandocosì un errore di fine trama.Successivamente il microcontrolloreprovvederà automaticamente allainizializzazione di una nuova ricezioneche partirà dopo aver ricevuto il nuovofine trama da parte del trasmettitore.La resistenza R2 e la capacità C1, chedeterminano il tempo di caduta delmonostabile, sono facilmentecalcolabili mediante la relazione:

Tw =0,28*R2*C1*(1+0,7/R2)

Figura 4: Segnale di fine trama

Figura 5: Simulazione del sistema con Proteus

Page 22: GENERATOREDIFREQUENZA CONUNPIC - Fare Elettronica · 2016. 6. 7. · Fare Elettronica n. 365/366 Aprile/Maggio 2016 pag. 10 MISURATORE DI RESISTENZA INTERNA BATTERIE (SECONDA PARTE)

Fare Elettronica n. 365/366 ­ Aprile/Maggio 2016 ­ pag. 22

I valori determinati sono: R2=180k eC2=22uf, la resistenza dovrà essere diprecisione con tolleranza almeno del5%, mentre il condensatore dovràessere del tipo al tantalio. I led presentinello schema hanno il seguentesignificato come da tabella 1. Prima diillustrare il software di sistema riportonelle figure 4 e 5 l’andamento delsegnale di fine trama e della ricezionedel DCF77 utilizzando il simulatoreProteus. Osservando la figuraprecedente può sembrare che laricezione del datario sia errata, ma nonè così, in quanto nel software delsimulatore non è stata ancoraimplementata la trasmissione deldatario. Data la lunghezza delprogramma illustrerò solo le partifondamentali e cioè:

1) La configurazione del timer1 inmodo che funga da discriminatoretemporale;

2) La gestione del timer1 per ilcorretto riconoscimento dei bittrasmessi;

3) La gestione dell’interruzione diinizio ricezione.

Il software e la simulazione conProteus saranno messi a disposizionedel lettore e scaricabili dal sitodell’editore, per chi volesse cimentarsinella realizzazione del progetto. Ilprogramma è stato scritto in MikroC(rel. 6.6.2) e la board di sviluppoutilizzata è la EasyPic6. Voglio ancheprecisare che si può impiegare unricevitore diverso da quello da meutilizzato, ad esempio quellorintracciabile online e fornito daConrad, economico e ben funzionanteanche con bassi segnali.

Elenco componenti

R2 180 KΩ 1/4 W 5%C1 22µF 25 V tantalioU3 PIC16F887U1:A 74HC123/CD74HC123CENTRALDCF77 ECATBreadBoard WISH consigl.

Listato 1

// Timer1 Registers:

// Prescaler=1:8; TMR1 Preset=0; Freq=3,8147Hz; Period=262.144.000 ns

T1CON.T1CKPS1 = 1; // bits 5­4 Prescaler Rate Select bits

T1CON.T1CKPS0 = 1;

T1CON.T1OSCEN = 1; // bit 3 Timer1 Oscillator Enable Control: bit 1=on

T1CON.T1SYNC = 1; // bit 2 Timer1 External Clock Input Synchronization Control bit: 1=Do

not synchronize external clock inputT1CON.TMR1CS = 0; // bit 1 Timer1 Clock Source Select bit: 0=Internal clock (FOSC/4) / 1= External clock from pin T1CKI (on the rising edge)

T1CON.TMR1ON = 0; // bit 0 enables timer

TMR1H = 0x00; // preset for timer1 MSB register

TMR1L = 0x00; // preset for timer1 LSB register

Listato 2

#define MAXZERO 30000 // tempo massimo zero 120ms#define MINZERO 18750 // tempo minimo zero 75ms

#define MAXUNO 55000 // tempo massimo uno 220ms#define MINUNO 42500 // tempo minimo uno 170ms

Page 24: GENERATOREDIFREQUENZA CONUNPIC - Fare Elettronica · 2016. 6. 7. · Fare Elettronica n. 365/366 Aprile/Maggio 2016 pag. 10 MISURATORE DI RESISTENZA INTERNA BATTERIE (SECONDA PARTE)

Fare Elettronica n. 365/366 ­ Aprile/Maggio 2016 ­ pag. 24

Configurazione del timer1

Prima di configurare il Timer1 del PICdefiniamo un parametro chechiameremo DSTH e che misurerà ladurata dell’impulso inviato daltrasmettitore che ci permetteràsuccessivamente di discriminare tra bit“0” e bit “1” inviato. Per effetto sia dellecondizioni meteo che della distanza diricezione imporremo che taleparametro possa variare nei seguentiintervalli:

75ms<= DSTH <=120ms (bit “0”)

170ms<= DSTH <=220ms (bit “1”)

Per essere sicuri di non commettereerrori imporremo che il timeout per il

timer1 risulti maggiore del tempomassimo precedentemente definito, inmodo particolare imporremo che taletempo sia di circa 262ms. La relazioneche lega il timeout del timer allafrequenza di clock dell’oscillatoreinterno (8Mhz) e al fattore di divisionedel prescaler, è data da:

Tout=(Div*4/fosc)*[216­Preset_timer]Imponendo: per fosc=8Mhz, Div=8(fattore di divisione del prescaler),Preset_timer=0 a conti fatti il timeoutdel timer1 risulterà, Tout=262,14ms. Laconfigurazione per il timer è riportatanel listato 1.

Gestione del timer1Per la determinazione del DSTHutilizzeremo l’interrupt scatenato dalfronte di salita e di discesa sul pin RB1del microcontrollore,infatti su tale pin

Listato 3

//­­­­ Interrupt RB1 di lettura dato ­­­­­­­­­­//if(INTCON.RBIF==1)if(PORTB.B1==1) // se riceve fronte salita inpulso dalla centralina

if(flag_finetra==1)

*Timer1=0x0000;T1CON.TMR1ON = 1; // abilito il timerif(flag_impulsi==0)

flag_impulsi=1;

elseimpulsi+=1;

if(PORTB.B1==0) // se riceve fronte discesa inpulso

if(flag_finetra==1)

T1CON.TMR1ON = 0; // disabilito timer1scatti_timer1=(TMR1H<<8)+TMR1L; // leggo il timerif((*Timer1>=MINZERO)&&(*Timer1<=MAXZERO))

valbit = 0x00;

if((*Timer1>=MINUNO)&&(*Timer1<=MAXUNO))

valbit = 0x01;

Page 25: GENERATOREDIFREQUENZA CONUNPIC - Fare Elettronica · 2016. 6. 7. · Fare Elettronica n. 365/366 Aprile/Maggio 2016 pag. 10 MISURATORE DI RESISTENZA INTERNA BATTERIE (SECONDA PARTE)

Fare Elettronica n. 365/366 ­ Aprile/Maggio 2016 ­ pag. 25

viene applicato il segnale provenientedalla centralina. Se su RB1 è presenteun fronte di salita resetteremo il timer1e lo attiveremo in modo da potercominciare il conteggio del tempo.Quando arriva il fronte di discesafermeremo il timer e gli scatti effettuatidetermineranno la durata dell’impulso.Il numero degli scatti fatti dal timer1 perrispettare gli intervalli del DSTHprecedentemente fissati dovrannorisultare, come da listato 2. Solo sottoqueste condizioni il microcontrollorericonoscerà il bit “0” o il bit “1” inviatodal trasmettitore. Il listato 3, anche senon completo per ragioni di spazio,mostra ciò che è stato affermato.Ovviamente tale operazione si ripeteràper tutti gli impulsi provenienti daltrasmettitore, nell’ambito della trama,opportunamente inizializzatadall’interrrupt generato dal

multivibratore monostabile 74HC123.La variabile chiamata impulsi, verràincrementata ad ogni fronte di salita,dell’impulso in arrivo da parte deltrasmettitore, e permetterà di associarei diversi bit ricevuti,ad esempio, aiminuti alle ore, eccetera. Un’altracaratteristica del DCF77, è chenell’ambito di qualsiasi parte dellatrama inviata, ad esempio le ore, ilprimo bit inviato è sempre quello menosignificativo, il che comporta unaulteriore complicazione nella gestionedelle informazioni ricevute.

Gestione di inizio ricezione

Per la gestione dell’inizio ricezione,ovvero per la sincronizzazione con iltrasmettitore, utilizzeremo l’interruzionescatenata dal multivibratore in

Listato 4

//­­­­­­­­ interrupt RB0 di fine trama ­­­­­­­­­­//if(INTCON.INTF==1)

if(impulsi==0)

flag_finetra=1; // setta il flag per iniziare ricezioneflag_impulsi=0; // setta il flag per conteggio inpulsi da zerominuti_ric=0; // cancella campo minuti ricevuti da DCFore_ric=0; // cancella campo ore ricevute da DCFgiorno_setti_ric=0;giorno_ric=0;mese_ric=0;anno_ric=0;bitauno=0; // cancella campo conteggio 1 ricevutiimpulsi=0; // cancella campo inpulsierrore_trama=0;errore=0;syncro=1;

else

flag_finetra=0; // resetta il flag per iniziare ricezioneflag_impulsi=0; // resetta il flag per conteggio inpulsi da zerominuti=0; ore=0;giorno_setti=0;mese=0;anno=0;minuti_ric=0; // cancella campo minuti ricevuti da DCFore_ric=0; // cancella campo ore ricevute da DCFgiorno_setti_ric=0;mese_ric=0;anno_ric=0;bitauno=0; // cancella campo conteggio 1 ricevutierrore_minuti=0; errore_ore=0;errore_datario=0;impulsi=0; // cancella campo inpulsivalbit=0;bitval=0;PORTD.B1=0; PORTD.B2=0;PORTD.B3=0;errore_trama=1;

INTCON.INTF=0;

Page 26: GENERATOREDIFREQUENZA CONUNPIC - Fare Elettronica · 2016. 6. 7. · Fare Elettronica n. 365/366 Aprile/Maggio 2016 pag. 10 MISURATORE DI RESISTENZA INTERNA BATTERIE (SECONDA PARTE)

Fare Elettronica n. 365/366 ­ Aprile/Maggio 2016 ­ pag. 26

Page 27: GENERATOREDIFREQUENZA CONUNPIC - Fare Elettronica · 2016. 6. 7. · Fare Elettronica n. 365/366 Aprile/Maggio 2016 pag. 10 MISURATORE DI RESISTENZA INTERNA BATTERIE (SECONDA PARTE)

Fare Elettronica n. 365/366 ­ Aprile/Maggio 2016 ­ pag. 27

corrispondenza del fine trama.L’interruzione è legata al fronte di salitache si presenta sul pin RB0, in questafase andremo a controllare il valoredella variabile “impulsi”, se talevariabile contiene il valore “0” vuoledire che non si è inizializzato nessunconteggio precedente, ciò significa chel’inizializzazione della ricezione ècorretta. Per ciò azzereremo tutte levariabili di lavoro e setteremo il flag dicorretta inizializzazione insieme allavariabile syncro (syncro=0 nonsincronizzato, syncro=1 sincronizzato)che verrà visualizzata sul display LCD.In caso contrario azzereremo ancora levariabili di lavoro (tra cui impulsi),insieme al flag di correttainizializzazione,e al contemposetteremo il flag di errore trama,spengendo i tre led, di ricezione minuti,ricezione ore, ricezione datario. Lagestione corretta dell’inizio ricezione èeffettivamente molto importante, al fine

di evitare errori casuali, che potrebberopresentarsi al momento in cui ilsegnale del trasmettitore DCF77, fossefortemente disturbato per ragioni di tipometereologico o da disturbielettromagnetici presenti lungo la trattadi ricezione. Il listato 4 evidenzia ciòche testé è stato affermato. Le fotoseguenti mostrano la realizzazione delprototipo e le successive fasi di debugdel software di sistema.

Osservazioni FinaliOltre la soluzione da me adottata sisarebbe potuto usare una soluzioneprettamente hardware, di cui riporto loschema di principio mediante l’uso delsimulatore Proteus. In questasoluzione il discriminatore temporale ècostituito dal dispositivo NE555 e dalFLIP­FLOP di tipo D(74HC74), sonopresenti anche due multivibratorimonostabili retriggerabili, uno svolge la

Figura 6: Realizzazione prototipo

Page 28: GENERATOREDIFREQUENZA CONUNPIC - Fare Elettronica · 2016. 6. 7. · Fare Elettronica n. 365/366 Aprile/Maggio 2016 pag. 10 MISURATORE DI RESISTENZA INTERNA BATTERIE (SECONDA PARTE)

Fare Elettronica n. 365/366 ­ Aprile/Maggio 2016 ­ pag. 28

funzione di fine trama mentre l’altroindica al micro controllore quandoandare a leggere il dato decodificato(dato pronto). Come dicevo all’iniziodell’articolo la decodifica del DCF77non è un’impresa proibitiva, marichiede un certo impegno, e questo èlegato soprattutto alla fragilità dellatrasmissione indipendentemente daltipo di soluzione adottata. Ricordo che,minore è la distanza che sussiste trapunto di trasmissione quello di

ricezione e migliore è la qualità delsegnale ricevuto. Se si vuol ricevere unsegnale certo, che trasmetta l’orario, sideve far ricorso al segnale GPS, e inmodo particolare alla stringaNMEA0185 con intestazione $GPGGA.

Bibliografia e riferimentiweb

http://www.ecat.it/site/index.php?module=site&method=home

http://www.ti.com/product/cd74hc123

http://www.microchip.com/wwwproducts/Devices.aspx?product=PIC16F887

http://www.mikroe.com/mikroc/pic/

http://www.mikroe.com/easypic/v6/

https://www.youtube.com/watch?v=4QLvl0b0nrg

Figura 7: La centralina

Figura 8: Soluzione hardware per la decodifica DCF77

Page 29: GENERATOREDIFREQUENZA CONUNPIC - Fare Elettronica · 2016. 6. 7. · Fare Elettronica n. 365/366 Aprile/Maggio 2016 pag. 10 MISURATORE DI RESISTENZA INTERNA BATTERIE (SECONDA PARTE)

Fare Elettronica n. 365/366 ­ Aprile/Maggio 2016 ­ pag. 29

Page 30: GENERATOREDIFREQUENZA CONUNPIC - Fare Elettronica · 2016. 6. 7. · Fare Elettronica n. 365/366 Aprile/Maggio 2016 pag. 10 MISURATORE DI RESISTENZA INTERNA BATTERIE (SECONDA PARTE)

Fare Elettronica n. 365/366 ­ Aprile/Maggio 2016 ­ pag. 30

Con un approccio diverso dal solito,anziché impostare il periodo dell’onda dagenerare, cosa più immediata a livellosoftware, si è preferito impostare lafrequenza da generare, perché più comodaper l'operatore. Questo crea una piccoladifficoltà poiché occorre convertire lafrequenza in periodo e, quindi, ricavare ilnumero intero da caricare nel timer delmicrocontrollore. La frequenza generatanon sempre coincide con quella impostata,per via dell’arrotondamento da numeroreale a intero. Per questo motivo, suldisplay sono visualizzate sia la frequenzarichiesta sia quella generata. Con piccolevariazioni sul programma è possibilemodificare l'intervallo di frequenzegenerate, tenendo conto che la routined’interrupt richiede qualche ciclo nontrascurabile per le alte frequenze. Questolavoro vuole essere anche un esempioapplicativo dell’encoder incrementale usatocome compatto ed economico dispositivod’immissione di grandi numeri.

Generazione frequenzaPer la generazione di frequenza è utilizzatoil Timer1, timer/counter a 16 bit, configuratoin modo timer con clock interno. Il registroTMR1 è incrementato con il clock e a ognioverflow (superamento di $FFFF), se èabilitato l’interrupt sul Timer1, è settatol’interrupt flag bit PIR1.TMR1IF. Il periododi interrupt da generare è impostatocaricando la coppia di registri TMR1(TMR1H e TMR1L) con un numerocompreso tra 0 e 65535. La routine diinterrupt da Timer1 cambia stato al bit RB3d’uscita, quindi, questo periodocorrisponde al semiperiodo dell’ondaquadra generata.

Il registro di controllo T1CON di Timer1 èimpostato in questo modo:

•TMR1CS = 0 : ingresso dal clockinterno, 1/4 di frequenza xtal = 4 MHz;•T1CKPS1 = 1, T1CKPS0 = 1 : Prescaler =8;•TMR1ON = 1: il Timer1 è abilitato.

Con queste impostazioni la frequenzad’ingresso di Timer1 è 4000/8 = 500 kHz, ilche corrisponde a un periodo base di 2 µs,questa è la risoluzione temporale delsistema. Caricando il registro TMR1 con ilnumero NT1 = 65535, il periodo d’interruptè di 0,002 ms ed essendo pari alsemiperiodo dell’onda quadra generata, lasua frequenza massima sarà pari a 250kHz, valore massimo teorico. Questo nontiene conto dei ritardi causati dalleistruzioni della routine d’interrupt e,soprattutto, dall’errore di arrotondamentoche cresce con la frequenza, quindi èpreferibile limitarla a 20 kHz. Il valoreminimo di frequenza generata è di circa3,8147 Hz, corrispondente a NT1 = 0. Datala frequenza fr richiesta, il processore devecalcolare il numero NT1 da caricare nelregistro TMR1:

NT1 = 65536 ­ INT (Tr / (2*tb))

Dove Tr = 1/fr è il periodo richiestodell'onda quadra generata e tb = 2 [µs] è ilperiodo base corrispondente allafrequenza in ingresso al Timer1, ossia500kHz. Esprimendo Tr in microsecondi siottiene: Tr = 1e6/fr , dividendo per due,essendo un semiperiodo, e per tb si ottienel’espressione:

NT1 = 65536 ­ INT (250000 / fr)

Generatore di frequenza con un PICdi Giovanni Carrera

Argomento di questo progetto è un generatore di onda quadra la cui frequenza, impostatada un encoder, varia da 4 Hz a 20 kHz. Si propone un’applicazione con unmicrocontrollore PIC molto comune come il PIC16F628, collegato a un display LCD e a unencoder elettromeccanico con pulsante integrato.

PP

Page 31: GENERATOREDIFREQUENZA CONUNPIC - Fare Elettronica · 2016. 6. 7. · Fare Elettronica n. 365/366 Aprile/Maggio 2016 pag. 10 MISURATORE DI RESISTENZA INTERNA BATTERIE (SECONDA PARTE)

Fare Elettronica n. 365/366 ­ Aprile/Maggio 2016 ­ pag. 31

Come già detto, l’arrotondamentonecessario per ottenere il numero interoNT1, causerà degli errori, che crescerannocon l’aumentare della frequenza e simanifestano quando la divisione non dà unintero. Per questo, è ricalcolata lafrequenza effettiva generata, con laformula inversa:

fg:= INT(250000/(65536­NT1))

Questa volta si potrebbero fare i calcoli invirgola mobile, ma non avendo spazio suldisplay e si è usato nuovamente un intero.

Lo schermo LCD impiegato nel prototipoaveva una riga a 16 colonne, per cui lafrequenza generata fg è mostrata insiemea quella richiesta fr, utilizzando 2 campi da8 caratteri. Una volta realizzato il sistema ecaricato il firmware, sono state eseguite lemisure con un frequenzimetro e si è notatoche il periodo generato era maggiore diquello ricavato dalla frequenza generata,indicata sul display da circa 500 Hz in su eche il ritardo era quasi costante e pari acirca 12,5 µs. Questo è dovuto ai cicli dellaCPU della routine di interrupt. A questopunto si può operare una correzioneaumentando (perché è il complemento a65536) di 3 unità il valore calcolato per

Tabella 1: Risultati delle misure temporali prima delle correzioni

Tabella 2: Risultati delle misure temporali dopo le correzioni

Page 32: GENERATOREDIFREQUENZA CONUNPIC - Fare Elettronica · 2016. 6. 7. · Fare Elettronica n. 365/366 Aprile/Maggio 2016 pag. 10 MISURATORE DI RESISTENZA INTERNA BATTERIE (SECONDA PARTE)

Fare Elettronica n. 365/366 ­ Aprile/Maggio 2016 ­ pag. 32

Page 33: GENERATOREDIFREQUENZA CONUNPIC - Fare Elettronica · 2016. 6. 7. · Fare Elettronica n. 365/366 Aprile/Maggio 2016 pag. 10 MISURATORE DI RESISTENZA INTERNA BATTERIE (SECONDA PARTE)

Fare Elettronica n. 365/366 ­ Aprile/Maggio 2016 ­ pag. 33

NT1, ossia, riducendo il semiperiodo di 6µs. La tabella 1 mostra i risultati dellemisure fatte sul prototipo prima dellacorrezione, dove l’errore è calcolato tra lafrequenza generata e quella misurata edeltat= (T generato ­ T misurato)*1000.Questa tabella è interessante ancheperché mostra alcuni casi in cui vi èdifferenza tra la frequenza richiesta equella generata. Questa differenza esisteanche per frequenze inferiori a 10kHz, per

tutti quei valori che danno un resto nelladivisione. L’errore sulla frequenza èinaccettabile già a soli 1000 Hz, per cui si èrimediato con NT1= NT1+3. Dopo lacorrezione vista prima, sono state rifatte lemisure e le cose sono notevolmentemigliorate, come mostra la tabella 2. Comeci si poteva aspettare, il deltat è ora di circa0,5 µs, purtroppo non ulteriormentecorreggibile, e gli errori sono accettabili.

Gli interruptIl PIC16F628 ha 10 sorgenti di interrupt, tredi esse sono utilizzate per questo progetto:

•Interrupt esterno RB0/INT, perl’encoder;

•Interrupt su variazione PORTB (4..7),RB4 per il pulsante dell’encoder;

•Interrupt su overflow di TMR1, per lagenerazione dell'onda quadra.

L’interrupt esterno sul pin RB0/INT è di tipoedge triggered: esso può essere generatoda fronte di salita o di discesa del segnale,impostando il bit OPTION. INTEDG,rispettivamente a 1 o 0. Quando avviene latransizione impostata sul pin RB0/INT, èsettato il flag interrupt bit INTCON.INTF,che sarà poi azzerato dalla routine diinterrupt da RB0. L’interrupt su variazionePORTB è generato da un cambiamento diingresso sui bit <7: 4> di PORTB e setta ilsuo flag interrupt bit INTCON.RBIF, chesarà poi azzerato dalla routine di interrupt

Figura 1: Aspetto tipico del modulo encoder.

Figura 2: Segnali di un encoder incrementale.

Figura 3: Schema dei circuiti anti­rimbalzo dell’encoder.

Page 34: GENERATOREDIFREQUENZA CONUNPIC - Fare Elettronica · 2016. 6. 7. · Fare Elettronica n. 365/366 Aprile/Maggio 2016 pag. 10 MISURATORE DI RESISTENZA INTERNA BATTERIE (SECONDA PARTE)

Fare Elettronica n. 365/366 ­ Aprile/Maggio 2016 ­ pag. 34

da variazione di RB4. L’interrupt puòessere attivato/disattivato impostando il bitINTCON.RBIE. Solo i bit configurati comeinput possono provocare l’interrupt, per cuisi è abilitato solo il bit PORTB .4.

L’encoderPer l’immissione della frequenza dagenerare si utilizza un piccolo encoderelettromeccanico, come quello mostrato infigura 1. Esso è montato su una piccolascheda su cui sono saldati tre resistori smddi pull­up da 10 kOhm. Naturalmente èpossibile acquistare il solo encoder eincorporarlo nella scheda anti­rimbalzo, manel prototipo si è usato questo modulo.L’encoder incrementale ha al suo internoun disco conduttore, solidale al perno. Suquesto disco sono praticate delle fessure inmodo da realizzare una specie di ruotadentata. Un paio di contatti striscianti,opportunamente disposti, permette di

generare due segnali sfasati di 90° inmodo da ricavare il senso di rotazione delperno, come mostrato in figura 2.L’encoder utilizzato è anche munito di unpulsante che scatta premendo il perno eche sarà utilizzato per posizionare la cifra.Per l'encoder sono necessari due interrupt,uno per la decodifica dei segnali e l'altroper il pulsante. Il canale A è collegato aRB0/INT, impostato su fronte di salita. Laroutine di interrupt leggerà il canale B eporrà delta=+1 se B=0 (senso orario:incremento) oppure delta=­1 se B=1(senso antiorario: decremento). Lavariabile delta è usata anche come flag diinterrupt da encoder, se delta=0, l’encodernon è stato mosso e tutto rimane invariato.Il secondo interrupt, quello su variazione diRB4, è usato per il pulsante dell’encoder, aogni schiacciamento della manopola devegenerarsi un interrupt che incrementeràl’indice della tavola con i moltiplicatoridell’incremento totale. Poiché a ogni

Figura 4: Schema della scheda madre.

Page 35: GENERATOREDIFREQUENZA CONUNPIC - Fare Elettronica · 2016. 6. 7. · Fare Elettronica n. 365/366 Aprile/Maggio 2016 pag. 10 MISURATORE DI RESISTENZA INTERNA BATTERIE (SECONDA PARTE)

Fare Elettronica n. 365/366 ­ Aprile/Maggio 2016 ­ pag. 35

pressione della manopola ci sono duecambiamenti di RB4, per identificare latransizione da zero a uno, si fa una letturadi RB4. Se questa è uno si procede aincrementare l’indice del moltiplicatore, chevaria da 1 a 5, ciclicamente. Premendo lamanopola il moltiplicatore passa da uno adieci, premendo nuovamente passa a 100,poi a 1000, poi a 10000, quindi ritorna a 1con un ulteriore schiacciamento delpulsante. Al reset il moltiplicatore è uno e lafrequenza richiesta è pari a 1000 Hz,valore di default. Se la frequenza immessaè superiore a 20kHz o inferiore a 4 Hz, èimpostato il valore minimo, ma questafrequenza può essere cambiata come purequella di default.

L’hardwarePer realizzare questo strumento è statoutilizzato un PIC16F628 interfacciato a un

piccolo display LCD 1x16, che è gestito dalsuo controller come un display da 2 righeda 8 caratteri. Questa scelta è giustificatadal fatto che la scheda era già statarealizzata per precedenti progetti ed èstata modificata per quest’applicazione.Con modeste variazioni al programma èmeglio usare un display da 2x16, chepermette di inserire maggiori informazioni erappresentare numeri in virgola mobile perla frequenza effettivamente generata. Perl’encoder è stato realizzato un circuito anti­rimbalzo perché la sua gestione software èfatta con gli interrupt e deve essere piùsnella possibile, soprattutto in questo casospecifico. La figura 3 mostra la il circuito,montato nel prototipo su una schedaseparata, ma che può essere incorporatonella scheda del PIC. Lo schema dellascheda principale è mostrato in figura 4. Lascheda ha un alimentatore a 5V realizzatocon un comunissimo 7805, che potrebbeanche essere un 78L05, visto che ilsistema consuma circa 5 mA. Il connettoreJ1 serve per programmare il PIC con unprogrammatore PICKIT2 o simili. Ilconnettore J2 serve per interfacciare lascheda anti­rimbalzo dell’encoder. Ilponticello Sw1 va tolto in programmazionee inserito nel normale funzionamento. Lafoto di figura 5 mostra il prototipo con ilpannello frontale trasparente smontato. Lascheda dell’encoder è fissata al pannello

Figura 5: Il prototipo.

Figura 6: Disposizione dei componenti.

Page 36: GENERATOREDIFREQUENZA CONUNPIC - Fare Elettronica · 2016. 6. 7. · Fare Elettronica n. 365/366 Aprile/Maggio 2016 pag. 10 MISURATORE DI RESISTENZA INTERNA BATTERIE (SECONDA PARTE)

Fare Elettronica n. 365/366 ­ Aprile/Maggio 2016 ­ pag. 36

Page 37: GENERATOREDIFREQUENZA CONUNPIC - Fare Elettronica · 2016. 6. 7. · Fare Elettronica n. 365/366 Aprile/Maggio 2016 pag. 10 MISURATORE DI RESISTENZA INTERNA BATTERIE (SECONDA PARTE)

Fare Elettronica n. 365/366 ­ Aprile/Maggio 2016 ­ pag. 37

con la vite filettata della boccoladell’encoder e collegata con un piccoloconnettore. E la figura 6 mostra la solascheda madre, con una millefori un pocopiù grande o con una disposizione piùcompatta si potrebbero montare anche icomponenti dei circuiti anti­rimbalzo. Asinistra si nota il connettore RCA perl’uscita dell’onda quadra e il trimmer per laregolazione del contrasto del display. Inbasso il connettore per la programmazioneICSP del PIC. La figura 7 mostra il sistemain funzione e completamente montato. Sipossono chiaramente notare le duefrequenze: a sinistra quella effettivamentegenerata (GF) e a destra quella richiesta(RF). In questo caso le frequenzedifferiscono di una sola unità.

Il programmaIl programma è stato scritto in Pascal,usando un potente cross­compiler su PCWindows, il mikroPascal PRO per PIC.Questo compilatore è distribuito in Italia daElettroshop come pure altri prodotti dimikroElektronika. Presso il sitowww.mikroe.com è possibile scaricaregratuitamente una versione completa, malimitata a soli 2k word di codice prodotto. Inquesto caso il codice ha una lunghezzainferiore, quindi, si può compilare senzaproblemi. Chi ha più dimestichezza con il C

o il Basic, può scaricare questi compilatorie tradurre il programma nel linguaggiodesiderato. Se questo programma fossestato scritto per Arduino, l’occupazione dimemoria flash sarebbe stata moltomaggiore, come pure il tempo dicompilazione. Questo è dovuto ai linguaggiusati che, pur rendendo più facile la vita alprogrammatore del compilatore, produconoun codice non ottimizzato a livello di codicemacchina. Il programma è sufficientementecommentato (in inglese) ed è già statodescritto nei precedenti paragrafi. Dato illimitato spazio sul display, le due scrittesono attaccate e si è dovuto sovrascrivereil primo zero con ‘=’ in quanto la stringadella conversione da intero con la funzioneIntToStrWithZeros(gfreq, texd) è sempre di6 caratteri, indipendentemente dal numero.Con un display più grande le duefrequenze sarebbero su due righe separatee ci sarebbe più spazio per le scritte. Con ilPIC16F628 e simili occorre disabilitare ilcomparatore analogico per permettere diusare i pin da esso impiegati come bit diI/O digitali.Si noti che il numero 65536 è stato scrittocome 65535+1 perché non rappresentabilecon variabile intera senza segno (type:word). Per rendere più veloce l’esecuzioneè meglio, nelle formule, sostituire i numericon i nomi di costanti.

Figura 7: Prototipo montato e in funzione.

Page 38: GENERATOREDIFREQUENZA CONUNPIC - Fare Elettronica · 2016. 6. 7. · Fare Elettronica n. 365/366 Aprile/Maggio 2016 pag. 10 MISURATORE DI RESISTENZA INTERNA BATTERIE (SECONDA PARTE)

Fare Elettronica n. 365/366 ­ Aprile/Maggio 2016 ­ pag. 38

Listato

program FreqGenerator;// Frequency generator with a PIC16F628 interfaced to an incremental encoder// print on LCD display the requested frequency// and the effective generated frequency// timer#1 for base frequency interrupt// I/O configuration:// PortB.0= encoder A with interrupt on falling edge (in)// PortB.1= encoder B (in)// PortB.2= LCD E (out)// PortB.3= Frequency output (out)// PortB.4= Encoder push button (in)// PortA.4= LCD RS (out)// PortA.0..3= LCD data (4 bit mode) (out)// xtal = 16.00 MHz// the LCD display has 1x16 but is seen as 2 rows x 8// by Giovanni Carrera 09/11/2015

vardelta, multi,rfreq,gfreq: integer;NT1: word;texd: string[6];const multiplier : array[1..5] of integer = (1,10,100,1000,10000);const fremax : longint = 250000;const wmax : word = $FFFF;

// Lcd module connectionsvar LCD_RS : sbit at RA4_bit;var LCD_EN : sbit at RB2_bit;var LCD_D4 : sbit at RA0_bit;var LCD_D5 : sbit at RA1_bit;var LCD_D6 : sbit at RA2_bit;var LCD_D7 : sbit at RA3_bit;var LCD_RS_Direction : sbit at TRISA4_bit;var LCD_EN_Direction : sbit at TRISB2_bit;var LCD_D4_Direction : sbit at TRISA0_bit;var LCD_D5_Direction : sbit at TRISA1_bit;var LCD_D6_Direction : sbit at TRISA2_bit;var LCD_D7_Direction : sbit at TRISA3_bit;// End Lcd module connections

procedure interrupt;// interrupts on Timer#0 and on falling edge of RB0begin

if TestBit(PIR1,TMR1IF) then // timer#1 interruptbegin

TMR1L := Lo(NT1); // load the timer LoTMR1H := Hi(NT1); // load the timer HiPORTB.3:= not PORTB.3; // invert outputPIR1.TMR1IF := 0; // clear Timer1 interrupt flag

endelse if TestBit(INTCON,INTF) then // interrupt on RB0

begin// increment or decrement counter on PB1 statusif TestBit(PORTB,1) then delta:= ­1 else delta:= +1;PORTB.3:= not PORTB.3; // toggle ledINTCON.INTF:= 0;// clear RB0 interrupt flag

endelse if TestBit(INTCON,RBIF) then // interrupt on RB4 Change

beginif (PORTB.4 = 1) then

Page 39: GENERATOREDIFREQUENZA CONUNPIC - Fare Elettronica · 2016. 6. 7. · Fare Elettronica n. 365/366 Aprile/Maggio 2016 pag. 10 MISURATORE DI RESISTENZA INTERNA BATTERIE (SECONDA PARTE)

Fare Elettronica n. 365/366 ­ Aprile/Maggio 2016 ­ pag. 39

begin // increment every 0 to 1 of RB4 changemulti:= multi+1;// button interrupt, increment multiplier indexif multi=6 then multi:=1; // back to topINTCON.RBIF:= 0;// clear interrupt RB4 change flag

end;end;

end;

procedure IOinit;// initialize I/O and variables

beginTRISB:= %00010011; // PORTB bits 2 and 3 are outputsTRISA:= %10100000; // PORTA bits 0..4 are outputsCMCON:= $07; // comparators off (RA0..RA4 usable as digital IO)multi:= 1;

Lcd_Init(); // Initialize LCD on PORT A,BLcd_Cmd(_LCD_CURSOR_OFF); // Turn off cursorClearBit(OPTION_REG,INTEDG);// Interrupt on falling edge of RB0SetBit(INTCON, RBIE); // Enables the RB port change interruptNT1:= $FF06; // load the timer (for a 1000 Hz square wave)TMR1L := Lo(NT1); // load the timer LoTMR1H := Hi(NT1); // load the timer Hi nowT1CON:= $31; // Timer1 enabled and Prescaler = 8SetBit(T1CON,TMR1ON); // Enables Timer1PIR1.TMR1IF := 0;// clear Timer1 interrupt flagINTCON.INTF:= 0;// clear RB0 interrupt flagINTCON.RBIF:= 0;// clear interrupt RB4 change flagSetBit(INTCON, INTE); // Enables RB0 interruptSetBit(PIE1, TMR1IE);// Enables Timer1 interruptSetBit(INTCON, PEIE); // Enables peripheral interruptSetBit(INTCON, GIE); // Enables global interruptrfreq:= 999; //start value ­ 1Lcd_Out(1, 1, 'FreqGen'); // Print text to LCD (colums 1..8)Lcd_Out(2, 1, 'by GCar'); // Print text to LCD (colums 8..16)Delay_ms(2000);Lcd_Cmd(_LCD_CLEAR); // lcd clear

end;

begin Main program IOinit; // InitializeLcd_Out(1, 1, 'GF');// generated frequencyLcd_Out(2, 1, 'RF');// requested frequencydelta:= 1; // the first time is set by the programwhile true Do // endless loopbegin

if delta<>0 then // encoder is been turnedbegin

rfreq:= rfreq + delta*multiplier[multi];// increment or decrement frequencyif (rfreq > 20000) Or (rfreq < 4) then rfreq:=4;// range controldelta:= 0;// resets the flagNT1:= wmax ­ integer(fremax/rfreq)+1;// evaluate TMR1IntToStrWithZeros(rfreq, texd); // convert to stringtexd[0]:= '=';Lcd_Out(2, 3, texd); // Print text to LCD (colums 8..16)gfreq:= integer(fremax/(wmax­NT1+1)); //evaluate generated frequencyNT1:= NT1+3;// this correction to take account of the delay of the programIntToStrWithZeros(gfreq, texd); // convert to stringtexd[0]:= '=';Lcd_Out(1, 3, texd); // Print text to LCD (colums 8..16)

endend;

end.

Page 40: GENERATOREDIFREQUENZA CONUNPIC - Fare Elettronica · 2016. 6. 7. · Fare Elettronica n. 365/366 Aprile/Maggio 2016 pag. 10 MISURATORE DI RESISTENZA INTERNA BATTERIE (SECONDA PARTE)

Fare Elettronica n. 365/366 ­ Aprile/Maggio 2016 ­ pag. 40

Page 41: GENERATOREDIFREQUENZA CONUNPIC - Fare Elettronica · 2016. 6. 7. · Fare Elettronica n. 365/366 Aprile/Maggio 2016 pag. 10 MISURATORE DI RESISTENZA INTERNA BATTERIE (SECONDA PARTE)

Fare Elettronica n. 365/366 ­ Aprile/Maggio 2016 ­ pag. 41

Orologio­sveglia con Arduinodi Girolamo D’Orio

Realizzazione di un orologio sveglia che non teme i Blackout momentanei. Mantiene inmemoria l’orario corrente, di allarme sveglia e lo stato di attivazione sveglia. Sono previstetre realizzazioni: un modulo RTC con visualizzazione orario su 4 display 7 segmenti, unmodulo per ricezione segnale DCF77 e visualizzazione ora e data su LCD, e un moduloRTC e visualizzazione orario su 4 Nixie.

Comprare un comune orologio­sveglia sonocapaci tutti. L’obbiettivo prefissato è quello dicostruire una sveglia che risponda ai seguentirequisiti:

1­Precisione nella misura del tempo;2­Mantenga orario e impostazioni

dell’orario allarme in caso di Blackout.

Propongo in questo articolo tre realizzazionibasate sul famoso microcontrolloreATmega328p­pu. La prima realizzazione èbasata su l’uso di un RTC ( Real Time Clock )che ha il compito di contare il tempo anchequando viene a mancare l’energia elettrica.

L’ora viene visualizzata su display a 7segmenti. La seconda realizzazione sfrutta unmodulo per la ricezione del segnale DCF77. Ilsegnale trasmette l’orario assoluto scanditoda tre orologi atomici. La visualizzazione diora e data avviene tramite Lcd. La terzarealizzazione, si differenzia dalla prima solonella visualizzazione dell’orario. Questa voltal’ora corretta sarà visualizzata dalle NIXIE.Parliamo della prima realizzazione, il moduloRTC ha il compito di tenere l’orario corretto edi inviarlo tramite comunicazione I2C almicrocontrollore. Il microcontrollore ha ilcompito di ricevere l’orario e di pilotare i 4display in modalità Multiplexing. Nel circuitosono presenti 4 pulsanti. P1 e P2

Figura 1: Schema orologio–sveglia con display 7 segmenti

SS

Page 42: GENERATOREDIFREQUENZA CONUNPIC - Fare Elettronica · 2016. 6. 7. · Fare Elettronica n. 365/366 Aprile/Maggio 2016 pag. 10 MISURATORE DI RESISTENZA INTERNA BATTERIE (SECONDA PARTE)

Fare Elettronica n. 365/366 ­ Aprile/Maggio 2016 ­ pag. 42

incrementano rispettivamente ore e minutiquando si entra in modalità settaggio orariosveglia. P3, se premuto entra nel settaggiodell’orario della sveglia. Una volto settatol’orario desiderato, per salvare l’ora dellasveglia nella EEprom occorre premerlo dinuovo. P4, se premuto abilita/disabilital’allarme sveglia impostato. Il punto decimaleposto nel quarto display indica se l’allarme èattivato/disattivato. Inoltre ha la funzione dispegnere la suoneria quando suona.L’altoparlante dell’allarme l’ho recuperato daun vecchio giocattolo di mia figlia, ha comecaratteristiche 100 Ω 0.1W. Mi sono limitatosolamente ad inviargli un segnale ad ondaquadra per fargli emettere un suono moltosimile alle comuni sveglie. Guardando loschema con i suoi numerosi collegamenti,dato che sfrutto 27 dei 28 pin delmicrontrollore, può sembrare un progettocomplicato che comporterà un grossoingombro nella realizzazione del Pcb. Mentrelo testavo su Breadboard facendo quindi molticollegamenti mi è venuto il dubbio anche ame di realizzare una sveglia di enormidimensioni. La figura 2 mostra la realizzazioneprovvisoria su Breadboard. Sembra un grangroviglio (anzi, lo è...), i collegamenti sononumerosi e realizzare un Pcb monofaccia con

il minor numero di ponticelli sembradifficile….. Mi è venuta l’idea di realizzarne 2,uno che ospita i display e l’altro il controllo.Per raggiungere l’obbiettivo di ottenere unoggetto il più piccolo possibile, i Pcb devonoessere delle solite dimensioni, in modo dipoterli montare uno dietro l’altro. Il risultato èaccettabile, poco più grande di un pacchettodi sigarette, oltretutto ho posizionato il moduloRTC sul retro in modo da poterlo estrarlofacilmente, per esempio per sostituire labatteria tampone.

Descrizione del circuitoHardwareIl circuito ha un assorbimento modesto,qualsiasi piccolo trasformatore che rimediatepuò andare certamente bene, l’importante cheil secondario abbia una tensione di uscitacompresa tra 8­15V. Nel caso usate untrasformatore con un secondario superiorealle 12V consiglio di installare una piccolaaletta di dissipamento al regolatore ditensione 7805. Non occorre necessariamentealimentare il circuito con un piccoloalimentatore stabilizzato, nel circuito è giàpresente. Con il microcontrollore non possopilotare singolarmente tutti i led di tutti i

Figura 2: Montaggio provvisorio

Figura 3: Ottimizzazione Display

Figura 4: Vista dal retro

Figura 5: Vista frontale

Page 43: GENERATOREDIFREQUENZA CONUNPIC - Fare Elettronica · 2016. 6. 7. · Fare Elettronica n. 365/366 Aprile/Maggio 2016 pag. 10 MISURATORE DI RESISTENZA INTERNA BATTERIE (SECONDA PARTE)

Fare Elettronica n. 365/366 ­ Aprile/Maggio 2016 ­ pag. 43

display, necessiterei almeno di 32 porte I/O ele relative resistenze per i led, quindi sfrutto latecnica del Multiplexing. Questa tecnica cipermette di collegare in parallelo gli anodi deidisplay con solo 7 resistenze. Utilizzo 4transistor NPN per pilotare i catodi di ciascundisplay. Facendo un rapido calcolo sfruttiamocosì solo 11 porte I/O, quasi un terzo.Potremo però pilotare solo un display allavolta, quindi dobbiamo ingannare i nostri occhiper veder tutti i display accesi. Noto che iltempo di risposta dell’occhio umano è di circa20 millisecondi tra un immagine e un'altra, sepilotiamo i display ad una velocità superiore, inostri occhi percepiscono un immagine stabilee pulita. 20 millisecondi sono 1/50 di secondo,quindi 200 Hz. il microcontrollore che lavoracon una frequenza data dall’oscillatoreesterno con un quarzo di 16 Mhz, abbiamo ununa velocità 80 volte superiore rispetto aquesto limite, quindi non è un problema,vedremo dopo nel software la sceltaadeguata.

Descrizione del software perArduinoIl sorgente è ben commentato e non troveretenessuna difficoltà nel capirlo. Per prima cosachiamo le librerie che ho fatto uso, inparticolare la RTClib che con semplici righe cipermette di ricavare dal modulo omonimo ora

e data. Per praticità ho inserito delle costantiper pilotare gli anodi dei display, ovvero adogni numero calcolato il microcontrollore sagià come portare i livelli logici I/O in relazioneai collegamenti con gli anodi (listato 1). Lasub­routine chiamata display7 quando gliviene associata una variabile tramite lafunzione switch porterà gli stati logici delleporte adeguati al numero da visualizzare,esempio del numero 3 (listato 2). Ilmicrocontrollore adesso è pronto allavisualizzazione, ma c’è un problema, levariabili delle ore, minuti e secondi ottenutecon la libreria sono un numero composto da

Figura 6: PCB e montaggio componenti

Elenco componenti

R2-R9 470 Ω ¼ WR1,R15-R17 10 KΩ ¼ WR11-R14 2,2 KΩ ¼ WC7 1000 uF 24V elett.C9 100 uF 16V elett.C1,C2 22 pF poliestereC8,C10 100 nF poliestereU1 7805U2 ATmega328p-puD1-D4 1N4007Q1-Q4 BC337 NPNXTAL 16 MhzDisplay 7seg SC10-21SRW cat.comTR1 Trasf. 0-9v 300mA

Page 44: GENERATOREDIFREQUENZA CONUNPIC - Fare Elettronica · 2016. 6. 7. · Fare Elettronica n. 365/366 Aprile/Maggio 2016 pag. 10 MISURATORE DI RESISTENZA INTERNA BATTERIE (SECONDA PARTE)

Fare Elettronica n. 365/366 ­ Aprile/Maggio 2016 ­ pag. 44

Page 45: GENERATOREDIFREQUENZA CONUNPIC - Fare Elettronica · 2016. 6. 7. · Fare Elettronica n. 365/366 Aprile/Maggio 2016 pag. 10 MISURATORE DI RESISTENZA INTERNA BATTERIE (SECONDA PARTE)

Fare Elettronica n. 365/366 ­ Aprile/Maggio 2016 ­ pag. 45

due cifre. Per visualizzare l’orario dato che idisplay sono quattro devo ricavare ognisingolo numero da inviare ad ogni singolodisplay. Con questo semplice algoritmoscompongo i numeri in modo da avere inumeri corrispondenti per le decine e le unità,sia delle ore e dei minuti (listato 3). Adessosiamo pronti per visualizzare l’orario con latecnica del Multiplexing (listato 4). Comevedete è reso molto facile da capire, la sub­routine display7 associata alla variabile delnumero da visualizzare, porta lo stato delleporte logiche adeguato al numero e il displayrelativo. La pausa di 3 ms. diaccensione/spegnimento tra un display el’altro permette di ingannare la nostra vistafacendoci credere che tutti e quattro i displaysono accesi, anche se in realtà non lo è. Seper curiosità volete capire come avviene ilMultiplexing vi basta aumentare il valoreinserito nel delay, rallentando riuscite a vederecome avviene. Passiamo adessoall’impostazione della sveglia. Premendo iltasto P3 viene richiamata un'altra sub­routinechiamata “setsveglia”. Dato che vogliomantenere in memoria l’orario della svegliaimpostato. Dopo averlo scelto l’orario disveglia premendo i due pulsanti cheincrementano le ore e i minuti, andremo apremere di nuovo P3 che registrerà in duecelle della EEPROM l’orario selezionato.Eseguita questa operazione ritorna lavisualizzazione dell’orario corrente (listato 5).Adesso premendo il pulsante P4 vedrete cheil punto decimale del quarto display cherappresenta le unità dei minuti si accenderà.Conferma il corretto inserimento della sveglia.Per disabilitare la sveglia occorresemplicemente premere di nuovo P3 fino ache il punto decimale si spegne. Altrafunzione di questo pulsante è quella dispegnere la suoneria della sveglia quandoquesta suona. Arrivato a questo punto misono posto un problema in caso di blackoutmomentaneo:l’ora corrente è mantenuta dal modulo con labatteria tampone, l’impostazione dell’orario disveglia è salvato nella EEprom, mal’attivazione dell’allarme? Se accade unblackout momentaneo mentre sto dormendo ilmicro riavviandosi perderebbe tale

impostazione, allora ho deciso dimemorizzare nella eeprom lo statodell’attivazione dell’allarme. Quando il microverrà riavviato, nel void setup (), subroutineche viene eseguita solamente una volta, vadoa leggere le celle della EEprom doveprecedentemente era stato registrato l’orariodella sveglia e lo stato dell’attivazioned’allarme. In questo modo sono sicuro che lasveglia suonerà.

Consigli per il montaggioPer prima cosa vi consiglio di saldare iponticelli dato che i grandi display verrannoposizionati sopra. Nel Pcb sono presentilettere adiacenti ai fori. I collegamenti con filodevono essere fati rispettando le lettere (Es.A­A, Dp­Dp, D1­D1). Essendo un produttoredi vino, per deformazione professionale, ho“confezionato” il circuito su un contenitore inlegno per bottiglie da 375 ml. I pulsanti sonoposizionati sopra. Al centro in rilievol’attivazione/disattivazione allarme, a desta ilpulsante per incrementare i minuti e a sinistrail pulsante per incrementare le ore. Il pulsanteper entrare nella modalità settaggio sveglia eposto dietro il pulsante centrale.

Il modulo RTC e la suaimprecisioneMontato il tutto a tarda sera e portato in casala mattina mi sveglio con la mia Ardusveglia,confronto l’orario e vado a lavoro soddisfatto.Quando torno la sera confronto l’orario e notoche è avanti. Rimango un po’ perplesso datoche il modulo doveva essere preciso. L’errorenon poteva venire altro che dal modulo, hodato la colpa immediatamente al quarzo da32.768 Khz. Sostituito, recuperandolo da unavecchia sveglia ottengo quasi il solito errorenelle 24 ore, RTC si porta in avanti di quasi 30secondi al giorno. Un errore inaccettabile.Collego il modulo al mio oscilloscopio dotatodi frequenzimetro e qui la sorpresa, il quarzooscilla ad una frequenza diversa (figura 8). Ladifferenza, a patto che il frequenzimetro siapreciso,(data l’età) si discosta di 11 hz rispettoa quella teoricamente corretta. 11 Hz sonopochi, è solamente un errore dello 0.033%.Ma facendo due calcoli, dato che in un giorno

Page 46: GENERATOREDIFREQUENZA CONUNPIC - Fare Elettronica · 2016. 6. 7. · Fare Elettronica n. 365/366 Aprile/Maggio 2016 pag. 10 MISURATORE DI RESISTENZA INTERNA BATTERIE (SECONDA PARTE)

Fare Elettronica n. 365/366 ­ Aprile/Maggio 2016 ­ pag. 46

Listato 1

//anodo A collegato al pin 7const int a=7;const int b=6;const int c=4;const int d=2;const int e=3;const int f=5;const int g=8;

Listato 2

void display7(int n) // per pilotare i segmanti da 0­9

switch(n)

case 3:digitalWrite(a, HIGH);digitalWrite(b, HIGH);digitalWrite(c, HIGH);digitalWrite(d, HIGH);digitalWrite(e, LOW);digitalWrite(f, LOW);digitalWrite(g, HIGH);break;

Listato 3

oredec=(now.hour()*100)/1000;oreunit=((now.hour()*100)­(oredec*1000))/100;mindec=(now.minute()*100)/1000;minunit=((now.minute()*100)­(mindec*1000))/100;

Listato 4

display7(oreunit);digitalWrite(disp1, HIGH);delay(3);digitalWrite(disp1, LOW);display7(oredec);digitalWrite(disp2, HIGH);delay(3);digitalWrite(disp2, LOW);

display7(minunit);digitalWrite(disp3, HIGH);delay(3);digitalWrite(disp3, LOW);display7(mindec);digitalWrite(disp4, HIGH);delay(3);digitalWrite(disp4, LOW);

Page 47: GENERATOREDIFREQUENZA CONUNPIC - Fare Elettronica · 2016. 6. 7. · Fare Elettronica n. 365/366 Aprile/Maggio 2016 pag. 10 MISURATORE DI RESISTENZA INTERNA BATTERIE (SECONDA PARTE)

Fare Elettronica n. 365/366 ­ Aprile/Maggio 2016 ­ pag. 47

ci sono 86400 secondi e l’errore è dello0.033%, guarda un po’ il caso86400*0.033%=28.5 secondi. Alla ricerca diun compensatore da collegare tra un pin delquarzo e la Gnd ho rimediato un 10­120pf.Dopo la sua installazione e regolazione ecco ilrisultato (figura 9). Dopo giorni di prova hoaggiunto un altro compensatore del solito

valore anche tra l’altro capo del quarzo e laGND. Con estrema sincerità vi comunico chel’errore dopo giorni di prove è costante,adesso si è portato a soli +4 sec al giorno. Levariabili che posso produrre questo errorepossono essere molte, citandone alcunel’errore può venire dal mio strumento, latemperatura, dato che i quarzo è termo

Listato 5

void setsveglia()

if (analogRead(A1)==LOW) // pulsante per incrementare le ore della svegliadelay(200); // pausa antirimbalzo pulsanteoresv=oresv+1;if (oresv >23) // chiaramente quando arriva a 23 riparte da zerooresv=0;

if (analogRead(A2)==LOW) // pulsante per incrementare i minuti della svegliadelay(200);minsv=minsv+1;if (minsv >59) // chiaramente quando arriva a 59 riparte da zerominsv=0;

oredecsv=(oresv*100)/1000;oreunitsv=((oresv *100)­(oredecsv*1000))/100;mindecsv=(minsv*100)/1000;minunitsv=((minsv*100)­(mindecsv*1000))/100;

display7(oreunitsv);digitalWrite(disp1, HIGH);delay(3);digitalWrite(disp1, LOW);display7(oredecsv);

digitalWrite(disp2, HIGH);delay(3);digitalWrite(disp2, LOW);

display7(minunitsv);digitalWrite(disp3, HIGH);delay(3);digitalWrite(disp3, LOW);display7(mindecsv);

digitalWrite(disp4, HIGH);delay(3);digitalWrite(disp4, LOW);

if (analogRead(A0)==LOW) // se premuto pulsante per impostare la sveglia dopo averscelto l'ora

delay(250);EEPROM.write(1, oresv); // memorizzo nella eeprom le ore svegliadelay(50); // piccola pausa per assicurare la corretta scritturaEEPROM.write(2, minsv); // memorizzo nella eeprom i minuti svegliadelay(50);impsveglia=0; // variabile di comodo che mi permette di uscire dalla subroutine

Page 48: GENERATOREDIFREQUENZA CONUNPIC - Fare Elettronica · 2016. 6. 7. · Fare Elettronica n. 365/366 Aprile/Maggio 2016 pag. 10 MISURATORE DI RESISTENZA INTERNA BATTERIE (SECONDA PARTE)

Fare Elettronica n. 365/366 ­ Aprile/Maggio 2016 ­ pag. 48

sensibile, oppure potrebbe anche essere unripple proveniente dalla sezione alimentatore.Infastidito da questa situazione, ho lasciatoperdere l’hardware. l ‘errore ormai costante di4 secondi in 24 ore l’ho risolto via softwareaggiungendo poche righe al sorgente (listato6). Alle ore 19:32:04 vado a comunicare almodulo che l’ora corrente è 19:32:00.Facendo così ho corretto l’errore, però datoche l’ora torna indietro, quando l’orario ritornaalle 19:32:04, il modulo RTC subirebbeancora un nuovo aggiornamento. L’orariorimarrebbe in questo spazio temporale di 4secondi. Ho inserito la variabile di comodonominata “adj”. Quando la variabile ha unvalore 0 avviene l’aggiornamento, altrimentino. Come vedete dal sorgente all’inizio lavariabile ha un valore 0 e avvienel’aggiornamento. Fatto l’aggiornamentocambia valore portandosi ad 1. In questomodo faccio saltare la condizione,così alle19:32:04 l’orologio continua la sua corsa.Chiaramente la variabile và ripristinata,altrimenti dopo 24 ore siamo al solitoproblema. Lo faccio fare immediatamente,quando l’orario raggiunge le 19:33:00 lavariabile torna a 0 e la condizione siverificherà solo quando torneranno ad esserele 19:32:04 del giorno dopo. Soluzione che

richiede un po’ di tempo e prove, oltretuttorimane come unica possibilità a chi nonpossiede una strumentazione affidabile. Laritengo la soluzione più efficace,ma a pattoche l’errore sia costante nel tempo.

L’aggiunta finaleDurante questi giorni di prova, noto l’unicoingresso analogico libero (an3). Ho deciso disaldare con collegamenti in aria la classicasonda di temperatura LM35. Modifica alsoftware che ad ogni minuto nell’intervallo tra i30 e i 40 secondi il display segnala latemperatura interna per poi tornare avisualizzare l’orario corrente. Buondivertimento e buona realizzazione a tutti.

Figura 7: Montaggio Figura 8: Primo oscillogramma

Figura 9: Secondo oscillogramma

Listato 6

// aggiustamento errore rtcwhile ((oredec==1 && oreunit==9 && mindec==3 && minunit==2 && secdec==0 &&

secunit==4)&&(adj==0))rtc.adjust(DateTime((now.year(), DEC), (now.month(), DEC), (now.day(), DEC), 19,

32,0));adj=1;

if (oredec==1 && oreunit==9 && mindec==3 && minunit==3 && secdec==0 && secunit==0)

adj=0;

Page 49: GENERATOREDIFREQUENZA CONUNPIC - Fare Elettronica · 2016. 6. 7. · Fare Elettronica n. 365/366 Aprile/Maggio 2016 pag. 10 MISURATORE DI RESISTENZA INTERNA BATTERIE (SECONDA PARTE)

Fare Elettronica n. 365/366 ­ Aprile/Maggio 2016 ­ pag. 49

Page 50: GENERATOREDIFREQUENZA CONUNPIC - Fare Elettronica · 2016. 6. 7. · Fare Elettronica n. 365/366 Aprile/Maggio 2016 pag. 10 MISURATORE DI RESISTENZA INTERNA BATTERIE (SECONDA PARTE)

Fare Elettronica n. 365/366 ­ Aprile/Maggio 2016 ­ pag. 50

ARDUINO “OPTO”, l’iperbole dell’autocostruzionedi Roberto Vallini

In questo articolo tratterò approfonditamente il tema dell’autocostruzione, rapportata allenuove tecnologie embended, cioè shield, con microprocessori incorporati e relativi moduligià pronti e configurati, pronti per l’incastro negli opportuni pin. La stazione saldante andràin disuso? Addio “Millefori”? Forse sì, ma per il momento, c’è chi, come un reduce diguerra, porta alta la bandiera del suo reggimento e, come me, difende “l’antico profumo”di stagno fuso, di un condensatore dissaldato a fatica da una vecchia TV, per creare unlampeggiatore su una tavoletta di legno.

L’Algoritmodell’autocostruzione

Autocostruire, per le nuovegenerazioni, abituate agli “starter kit”,e ai debugging dal Web, è vista, avolte, come una “cosa da romantici”superata. Essendo a contatto con iragazzi delle scuole medie, con cuitento sempre più difficilmente diportare avanti dei progetti tecnico­ludici, come ad esempio larealizzazione di un moto inverso, o diun lampeggiatore, noto che tali temidestano sempre meno interesse.Quante volte ho sentito la frase:“Perché non creiamo un robottino? Ioho sentito che con il jostick della PlayStation si può fare”. Un robottino? Unmix di meccanica teorica ed applicata,elettrotecnica, elettronica discreta,digitale, microchip, trasmissioni radio,ed una conoscenza quasi“ingegneristica” dei movimentiortogonali, rotatori e ancora di più?Non ci siamo! Se poi prendiamo unlibro di testo per gli istituti tecnici, su440 pagine, la legge di Ohm neoccupa 4, contate. “Creare” nonsignifica E­Bay ed una ricaricabilepiena. Creare un oggetto, il quale simuova nello spazio, richiede fantasia,curiosità, ma soprattutto costanza.Occorre fare e disfare senzascoraggiarsi, per arrivare a un oggettodi cui andare fieri. Perché il problemasta proprio qui. Se, è vero che creare“modularmente” è semplicissimo, èvera la condizione per cui la cosa

creata annoierà presto e finirà inqualche angolo buio. Poi si passerà afare i veri “makers”, dopo aver passatoun po' di tempo sui libri, a studiarel'algebra di Boole e i principifondamentali dell'elettrotecnica. E’ difatti un algoritmo, più fantasia epazienza corrispondono a unamaggiore soddisfazione. Cercheròquindi, di guidare i più giovani alla“creatività totale”, attraverso losviluppo guidato di una semplicissimamacchina, governata dai raggiinfrarossi, per far scoprire, la tangentecreativa che inevitabilmente intersecala “chiusa circonferenza” del “giàpronto”. Inserirò poi Arduino Uno, unashield non vecchia ma nemmenotroppo nuova, cosi come il “periodo dimezzo”, che stiamo attraversando.

Robot, un po’ di storiaIl termine “robot” compare per la primavolta nel 1920, dallo scrittore ceco

Figura 1: Tipica scheda relè dissaldata daicomponenti inutili

DD

Page 51: GENERATOREDIFREQUENZA CONUNPIC - Fare Elettronica · 2016. 6. 7. · Fare Elettronica n. 365/366 Aprile/Maggio 2016 pag. 10 MISURATORE DI RESISTENZA INTERNA BATTERIE (SECONDA PARTE)

Fare Elettronica n. 365/366 ­ Aprile/Maggio 2016 ­ pag. 51

Karel Capek nel suo dramma satiricoutopico R.U.R, per rappresentare ilrapporto antitetico tra l’uomo e ilmondo delle macchine. L’inizio del 900vede la nascita delle prime catene dimontaggio, e con esse i parerifavorevoli e contrari. Cult movieentrato nella storia con “Tempimoderni” del 1936 dove, unimprovvisato Charlie Chaplin operaio,si fa trascinare in un ritmo frenetico diproduzione, fino ad essere inghiottitodalla catena di montaggio. Si arrivònegli anni ottanta quando l’economistaamericano Jeffrey Sachs teorizzò la“fabbrica a luci spente”, cioè un sitoproduttivo dove la presenza dell’uomoe, di conseguenza della luce, è inutile.Forse, la citazione di Furio Colombo,

nello incipit del suo saggio “Confucionel computer”, definisce bene lasituazione: “Come saranno la vita, lescelte, il destino del mondo digitale deibit, che non è fisico però è reale, lungopercorsi labirintici nella rete? Cisaranno eventi nuovi, non ancoraesplorati. Il nuovo, non sempre è ilmeglio, però è inevitabile”.

Tipi di macchineLe macchine si possono classificare indue grandi gruppi: operatrici e motrici,Con le prime, si modifica la forma o laposizione di un oggetto. Le secondetrasformano un certo tipo di energia,(chimica, elettrica, di pressione etc.) inenergia meccanica utile. Sonomacchine operatrici le macchinesemplici, anche le leve e piani inclinati.Lo studio dei principi fisici su cui sibasano è fondamentale percomprendere il funzionamento dellemacchine di uso industriale. Lemacchine di trasporto di persone, dimerci o di lavorati, all’interno deireparti, appartengono al gruppo delleoperatrici, esse si muovono in percorsiil cui termine tecnico è “assi”.Proveremo in questa descrizione acostruire una piccola macchina, laquale si muove lungo l’asse x delpiano.

Figura 2: Fotografia dei sensori a forcella, integri esmontati

Figura 3: Tabella delle grandezze rilevate

Page 52: GENERATOREDIFREQUENZA CONUNPIC - Fare Elettronica · 2016. 6. 7. · Fare Elettronica n. 365/366 Aprile/Maggio 2016 pag. 10 MISURATORE DI RESISTENZA INTERNA BATTERIE (SECONDA PARTE)

Fare Elettronica n. 365/366 ­ Aprile/Maggio 2016 ­ pag. 52

Costruire una macchinaAnche se esistono simulazioni, il temaè l’autocostruzione, quindi gli standarddi progettazione vanno messi per unattimo da parte. Se, infatti, il listatorisultante dal nostro layout non fossecorrispondente ai materiali e aicomponenti che abbiamo inlaboratorio, saremmo nei guai. Il veroauto­costruttore colleziona tutto ciòche può essergli utile in futuro. Breveinciso, ne conobbi uno, veramentebravo che, collezionava piccole teiere.

Un giorno, facendogli visita, vidi leteiere deturpate del coperchio, nellapattumiera. Preso da stupore, girai losguardo e vidi una sfilza di piccoliemisferi di ottone sul suo banco. Stava“selezionando” il giusto tetto per il suofaro in scala, da piazzare su di unosplendido diorama marino. Torniamo anoi. Costruire una macchina seppurmovente su un asse richiede la listadella spesa, se siamo dei veri “auto­makers”. Ecco come va impostata.

Quali sono i componentirealmente importanti?A parte i materiali di costruzione, laparte elettronica va realizzata senzacompromessi di sorta, con questointendo dire che, non si possonoinserire componenti più o menoadattabili allo scopo, a parte in alcunevarianti. Se, per fare un esempio, labasetta di plexiglas su cui fissare uncircuito, anche se sborda di qualchemillimetro, non succede niente digrave, ne patirà il lato estetico, ma non

Figura 4: Moduli di ricezione­trasmissione

Figura 4a: Schema base di relé di scambio

Page 53: GENERATOREDIFREQUENZA CONUNPIC - Fare Elettronica · 2016. 6. 7. · Fare Elettronica n. 365/366 Aprile/Maggio 2016 pag. 10 MISURATORE DI RESISTENZA INTERNA BATTERIE (SECONDA PARTE)

Fare Elettronica n. 365/366 ­ Aprile/Maggio 2016 ­ pag. 53

Page 54: GENERATOREDIFREQUENZA CONUNPIC - Fare Elettronica · 2016. 6. 7. · Fare Elettronica n. 365/366 Aprile/Maggio 2016 pag. 10 MISURATORE DI RESISTENZA INTERNA BATTERIE (SECONDA PARTE)

Fare Elettronica n. 365/366 ­ Aprile/Maggio 2016 ­ pag. 54

il funzionamento dello stesso. Per icomponenti elettronici il discorsocambia, un circuito progettato ha queicomponenti e altri non possonoessere. Nell’ottica dell’autocostruzionei componenti possono essererecuperati da schede in disuso,dissaldandoli con molta cautela. E’un’operazione che, richiede tempo epazienza, anche qui occorre chiedersi:“Ma ne vale la pena”? Ne vale la penanella misura in cui, il tempo trascorso adissaldare, supera il costo delcomponente stesso. Occorreindividuare dei tipi di componente chepotranno servire per altri progetti equelli di maggior costo commerciale.

Innanzitutto la serie LM317. Questointegrato, ha le dimensioni di unnormale transistor di potenza tipoTO220, dispone di tre piedini, ed èutilizzato come stabilizzatore ditensione, erogatore di corrente,variatore e, altri molteplici usi. Aseguire, la serie 78xx, dove le due xvengono sostitute con il livello ditensione da stabilizzare. Trattasi infatti,anche in questo caso di un integratocon tre piedini, anch’esso tipo TO220,il quale livella il valore nei circuiti, multitensione. Un’applicazione moltosfruttata del 7805, è quella dove, su diun’unica scheda relè, alimentata a12V, occorre avere una derivazione a5V per gli integrati TTL. Immancabilela serie dell’integrato ULN28003A,nello specifico, un array di 8Darlinghton, Common Emitter, dalquale datasheet, si evince che,supportano una massima corrente diben 500 mA, ideale per dispositivi dipotenza media, (come premessoArduino non supportando correntiimportanti, necessita dei “muletti”capaci di implementare una correntesuperiore ai 40mA). Ultimo, non perimportanza, l’integrato 555, con cui sipossono creare multivibratori di ognitipo, compresi timer e generatori dionde. Per concludere, direi che i relè,nello specifico quelli con bobina da 5 o12V, visto il costo, non vanno di certobuttati nella spazzatura. Il tempo èprezioso, anche per un auto­makers eforse è meglio dare un’occhiata alWeb.

Cominciare dal semplicePartiremo da un carro, useremo unaparte di una vecchia locomotivagiocattolo, posizionato su una rotaia adue poli, che danno energia al piccolomotoriduttore, la quale, emulando ilmovimento sull’asse “X”, compirà unaroutine di trasporto, durante la suaroutine operativa, in un’ipoteticaofficina di produzione al sito di

Figura 5: Schema dei moduli di ricezione­trasmissione

Figura 5a: Schema modulo emettitore

Page 55: GENERATOREDIFREQUENZA CONUNPIC - Fare Elettronica · 2016. 6. 7. · Fare Elettronica n. 365/366 Aprile/Maggio 2016 pag. 10 MISURATORE DI RESISTENZA INTERNA BATTERIE (SECONDA PARTE)

Fare Elettronica n. 365/366 ­ Aprile/Maggio 2016 ­ pag. 55

stoccaggio. Lungo il suo percorso, lanostra “macchina” incontrerà deisensori ottici ad infrarossi (diffusissiminelle industrie) in quanto,garantiscono, oltre il funzionamentodel processo, una sicurezza per glioperatori. Gli operai, se si trovasseroaccidentalmente sul percorso deltransponder, bloccherebbero il ciclo,fino a riarmo. Nella mia protoboard housato, smontandoli (nella logica delloscoprire) dei sensori ottici a forcella,per l’affidabilità dei componenti interni,visto che tentando con foto­resistenzee fotodiodi tradizionali ho riscontratoun “inquinamento” non indifferente,dato dalla luce diurna o artificiale.

Breve descrizione dei raggiinfrarossi e di sensori aforchettaI sensori a forcella sono composti daun emettitore di raggi infrarossi postoin asse con un ricevitore sensibile atale emissione luminosa. Sono posti esaldati su di un unico circuito, ericoperti da una struttura plastica neracon due feritoie specchiate, inprossimità del fascio luminoso.L’emettitore è solitamente unfotodiodo, ovvero un Led I.R. Ilricevitore è un fototrasnsistor,collegato a “base aperta”, ovvero ilcollettore riceve l’alimentazionepositiva, l’emettitore è a massa come ilcatodo del diodo contrapposto e, labase non ha terminali. Il diodo, conl’anodo al positivo, se non ricevetensione non emette nessun tipo diluce. Una volta alimentato, il led I.R.sfrutta le capacità ottiche di alcunimetalli ionizzati, per emettere fotoni,secondo il noto principio fisicodell’emissione spontanea. Stessofenomeno, però, fisicamenterovesciato, accade sulla base delfototransistor la quale, ricevendo ifotoni, emette una piccola corrente,che scorre tra collettore ed emettitore.Se poi tale segnale viene amplificato

opportunamente, si ottiene undispositivo che inserito in un ambito dipotenza, funziona a tutti gli effetti,come un interruttore ottico, pocosensibile alla luce visibile.

Sensori come interruttoriNel progetto, ho predisposto seimoduli, con le caratteristiche riportatein figura 2. Ho innanzitutto creato dueemettitori d’infrarosso, denominati E1(emettitore 1) ed E2 (Emettitore 2),nello specifico due Led I.R. posti suuna basetta con una resistenzavariabile di limitazione di corrente di5Kohm. Gli emettitori sono stati estrattidal loro contenitore e rimessi in asse.Questa operazione è stata necessariaperché lo scarto dei binari era di granlunga superiore ai 5 millimetri della“forcella”. E1 ed E2, una voltaalimentati, creano un fascio di fotonicontinuo, il quale, va a colpire ilfototransistor accoppiato: (IR1­IR2)Entrambi i fototransistor, hannoricevuto la stessa sorte dei fotodiodi,

Figura 6: Questa è la fotografia dell’ATX“modificato”

Figura 7: Base relè finita

Page 56: GENERATOREDIFREQUENZA CONUNPIC - Fare Elettronica · 2016. 6. 7. · Fare Elettronica n. 365/366 Aprile/Maggio 2016 pag. 10 MISURATORE DI RESISTENZA INTERNA BATTERIE (SECONDA PARTE)

Fare Elettronica n. 365/366 ­ Aprile/Maggio 2016 ­ pag. 56

sono stati collegati a una Vcc di 12 V,con una resistenza di limitazione di 10Kohm, ed una resistenza dipolarizzazione in base di 10Kohm.Infatti, dal collettore del foto transistor,tramite opportuno collegamento, misono diretto alla base di un transistor,capace di amplificare il debolesegnale, entrando nello stato disaturazione, o viceversa (nonricevendo alcuna corrente) in

interdizione. Ho scelto un transistor2N17111, per le sue peculiarità diutilizzo, in condizioni non lineari. Minecessitava un transistor, che,amplificando la debole corrente inarrivo alla sua base, si ponesse incondizione di saturazione, per attivarela bobina del relè, e di conseguenzaarrivare ad Arduino con dei segnali“puliti” (alto o basso). Non mi sonofidato delle mille configurazioni che sivedono qui e là sul web, con bjt cheinteragiscono con Arduino, tramitepolarizzazioni non sempre affidabili. Irelè scelti hanno 8 pin di cui 2 per labobina e 2 contatti in scambioseparati. La resistenza della bobina èdi 175 ohm quindi, alimentati a 12Vassorbono 0,07A dissipando 0,86W.Occorreva un transistor robusto, con

Listato 1

//Questa routine prevede uno scambio di polarità////tra i binari, condizionata dai due fotosensori lungo il percorso//

void setup()

pinMode(2,OUTPUT); //Collegamento a binario A//pinMode(3,OUTPUT); //Collegamento a binario B//pinMode(4,OUTPUT); //Collegamento a binario B//pinMode(5,OUTPUT); //Collegamento a binario A//pinMode(9,INPUT); //Segnale proveniente da AR1//pinMode(10,INPUT); //Segnale proveniente da AR2//

void loop()int ValPin9=digitalRead(9); //leggi I valori//int ValPin10=digitalRead(10); //leggi I valori//digitalRead(9);digitalRead(10);if((ValPin9==HIGH)&&(ValPin10==LOW)) //Se AR1 è alto// //A=tensione positivae B=tensione negativa//

digitalWrite(2,HIGH); //Quindi il carro va dal punto A, al punto B//digitalWrite(4,HIGH);digitalWrite(3,LOW);digitalWrite(5,LOW);

if((ValPin9==LOW)&&(ValPin10==HIGH)) //Se AR2 è alto// //A=tensione negativa B=tensione positiva//

//quindi inversione di marcia//digitalWrite(2,LOW);digitalWrite(4,LOW);digitalWrite(3,HIGH);digitalWrite(5,HIGH);delay(5000);

Figura 7a: Schema modulo relé

Page 57: GENERATOREDIFREQUENZA CONUNPIC - Fare Elettronica · 2016. 6. 7. · Fare Elettronica n. 365/366 Aprile/Maggio 2016 pag. 10 MISURATORE DI RESISTENZA INTERNA BATTERIE (SECONDA PARTE)

Fare Elettronica n. 365/366 ­ Aprile/Maggio 2016 ­ pag. 57

Page 58: GENERATOREDIFREQUENZA CONUNPIC - Fare Elettronica · 2016. 6. 7. · Fare Elettronica n. 365/366 Aprile/Maggio 2016 pag. 10 MISURATORE DI RESISTENZA INTERNA BATTERIE (SECONDA PARTE)

Fare Elettronica n. 365/366 ­ Aprile/Maggio 2016 ­ pag. 58

la mia scelta penso di esser andato sulsicuro. Viste le dimensioni del progettosi potevano utilizzare relè più piccolima, nella filosofia auto­costruttiva,questi due componenti, sono statiriparati e resi utili anche per progettifuturi.

Posizionamento erealizzazioneCome si è visto nelle figure 3,4 e 5tutto è stato auto­costruito è si è fattoampio uso di basette millefori. Perpoter alimentare il progetto, è statoriciclato e messo a nuova vita unalimentatore ATX per computer fissi.Nel caso dell’ATX, che ben tutticonosciamo, è stato dotato, delle tretensioni necessarie per il

funzionamento prototipale: 3,3 Volt peril carro, 5 Volt per Arduino Uno, e 12Volt per la funzionalità dei relè. Seosservate la figura 5 noterete che, conuna profonda opera di dissaldo, sonostati eliminati 16 conduttori sui 20destinati al connettore per lamotherboard. Il cavo color verde,destinato all’avviamento secondario, èstato cortocircuitato a massa, inmaniera che l’interruttore generale,attivi tutto il sistema. Quindi, con ilconnettore quadripolare ho costruitouna shield TRE con tipi diconnessione: Morsettiera, pin headermaschio e pin header femmina,logicamente collegati in parallelo e,tutti e tre “fu sibilati” separatamente.Tutto questo per poter usufruire di unalimentatore veramente sicuro, masoprattutto “custom”.

Arduino Uno entra incampoAdesso Ora entra in campo il nostroATmega328, il quale deve governare ilsistema. Ho usato una configurazionecon componenti recuperati. Houtilizzato una vecchia scheda con 4relè 12V­0,3W, con un contatto inscambio. Visto che di tali schede ne hoalcune, ho recuperato 4 relè, unULN28003A, e le morsettiere di I/O.Ho realizzato un “Arduino PLC” a tuttigli effetti. Certamente sperimentale madotato di quattro livelli sotto indicati:

Figura 8: Questa è protoboard per esperimenti otticie di movimento con Arduino

Figura 8a: Schema collegamenti Base superiore

Page 59: GENERATOREDIFREQUENZA CONUNPIC - Fare Elettronica · 2016. 6. 7. · Fare Elettronica n. 365/366 Aprile/Maggio 2016 pag. 10 MISURATORE DI RESISTENZA INTERNA BATTERIE (SECONDA PARTE)

Fare Elettronica n. 365/366 ­ Aprile/Maggio 2016 ­ pag. 59

1° Livello: base relè, conmorsettiera, ULN 28003A eilluminazione blu, per dare un tocco dieleganza;

2° Livello: Posizionamento diArduino Uno;

3° Livello: Inserimento di una miniprotoboard autocostruita, conmorsettiera con i pin corrispondentiagli ingressi ed alle uscitedell’ULN28003A. Questa finezza, chemi è costata un grande lavoro,permette alcune agevolazioni. Laprima, di poter rispettare il pin­out diArduino senza problemi, senza cavisvolazzanti. La seconda di pilotare in

cascata altri relè visto che, per questaprima parte ne necessitavanosolamente 4, ed essendo l’integrato,predisposto per 8 ingressi/uscite, neavanzavano 4, perché non sfruttarle?

4° Livello: Una ulteriore protoboard, peragevolare esperimenti, ricavata da unamillefori a doppia faccia, ottenuta con unlungo lavoro, per via dello sfalsamentodella pin­header di Arduino Uno.

Su questa questione, si è dibattutomolto sui vari forum, ma finoranessuno ha saputo dare una risposta aquesta complicanza, la quale obbliga,se si vuole autocostruire una proto­Board, ad una fresatura di precisionecon relativo incollaggio dei pin sfalsati.Quest’ultima, illustrata in figura, è statala mia soluzione.

ConclusioniQuesto progetto, come premessonell’incipit, è stata una sfida tra duemondi, quello delle release, frutto dischemi e progetti già pronti daincastrare, (embedded) ed il mondodella “creazione totale”. Da tutte leimmagini, capirete come, sono stateimpegnate ore e ore, per riuscire a farcombaciare oggetti, nati ognuno perun’applicazione tipica, trasformarli erenderli utili, per qualcosa di mio, esolo mio, che potrà avere sviluppifuturi, con aggiunte di nuovi “device” enuovi movimenti. Ora la mia“Protoboard per robot” è stata creata,questa è la genesi dei movimenti, delleleve, delle rotazioni. Lo dedico ai piùgiovani, con lo scopo che possanocomprendere che “il robottino”, semprecome citavo all’inizio, te lo devisudare, avendo l’umiltà di capirequante variabili occorre considerareper un moto inverso, Poi si passerà afare i veri “makers”, dopo avertrascorso un po' di tempo sui libri, astudiare l'algebra di Boole, e i principifondamentali dell'elettrotecnica.

Figura 10: Scheda completa

Figura 9: Foto Arduino PLC

Page 60: GENERATOREDIFREQUENZA CONUNPIC - Fare Elettronica · 2016. 6. 7. · Fare Elettronica n. 365/366 Aprile/Maggio 2016 pag. 10 MISURATORE DI RESISTENZA INTERNA BATTERIE (SECONDA PARTE)

Fare Elettronica n. 365/366 ­ Aprile/Maggio 2016 ­ pag. 60

© CopyrightTutti i diritti di riproduzione o di traduzione degli articoli pubblicati sono riservati.Manoscritti, disegni e fotografie sono di proprietà di CONSORZIO TECNOIMPRESE SCARL. È vietatala riproduzione anche parziale degli articoli salvo espressa autorizzazione scritta dell’editore. Icontenuti pubblicitari sono riportati senza responsabilità, a puro titolo informativo.

DIRETTORE RESPONSABILEAntonio Cirella

DIRETTORE TECNICOGiovanni Di Maria

Hanno collaborato in questo numero:Ivan Scordato, Grazia AnconaAlberto Trasimeni, Giovanni CarreraGirolamo D’Orio, Roberto Vallini.

Direzione Redazione:CONSORZIO TECNOIMPRESE SCARLVia Console Flaminio, 1920134 MILANO – MI