Libera Elettronica è il luogo dove parleremo di elettronica fai-da-te, di programmazione dei sistemi embedded e di curiosità tecnologiche, guardando avanti, ma senza dimenticare la storia.
Ero alla ricerca di un titolo per questo Post. Pensavo ESP 32 ...da brividi!
Fig. 1 - ESP32. Piastra di assieme prototipale
In effetti se realizzerete una piastra prototipale come quella in Figura 1, alcuni brividi potrebbero occorrere nel corso dei vostri sviluppi (...se non altro per l'utilizzo di così tante connessioni precarie come quelle dei cavetti di collegamento rapido.).
Cosa abbiamo inserito questa volta sulla nostra piastra prototipale? Ecco l'elenco:
Audio I2S con altoparlante
Display OLED
Sensore di pressione BMP180
Sensore di umidità e temperatura DHT11
Orologio datario DS3231
microSD card con File System
Rele di potenza
Led PWM
Encoder rotativo
Web Server con visualizzazione dati e comandi remoti
L'effetto Wow è che il tutto è stato provato con un programma compatibile con l'IDE Arduino.
Se siete interessati a ricevere gratuitamente il codice sorgente, contattatemi personalmente.
Per il resto Vi auguro una buona sperimentazione con ESP 32 e a presto :)
I LED (Light Emitting Diode) sono sempre più presenti nella nostra quotidianeità. Sviluppati a partire dagli anni '60, essi si sono progressivamente imposti come sostituti ideali per molte fonti di illuminazione, anche al di fuori dello spettro visibile (es. IR, UV).
I vantaggi? Lunga durata, bassi consumi, colori saturi.
Oggi, troviamo i LED nelle automobili (interni, luci di posizione, stop, frecce), negli elettrodomestici (retroilluminazione di televisori LCD) e in tantissime altre applicazioni. Non possono quindi mancare anche nel nostro laboratorio!
Prima di proseguire, guardiamo insieme questo video che ho preparato per Voi. Giocheremo con i LED e altro.
Ecco lo schema elettrico del circuito a quattro canali PWM. Esso viene pilotato dalla Linux-Toolbox, che è il nostro sistema tuttofare.
(fare click sull'immagine per ingrandire)
Le porte di I/O LVCMOS sono state prelevate dal connettore DIN41612, come in figura:
Il codice Ansi C, per pilotare ogni I/O è:
/* this function generate four pwm signal */ void pwm(unsigned char p0, unsigned char p1, unsigned char p2, unsigned char p3) { int i, count;
/* set gpio 0-3 (PC10-PC13) */ for (i=0; i<256; i++) {
if (i >= p0) *((unsigned long *) (map_base + (PIOC_CODR & MAP_MASK))) = PIO_C10; else *((unsigned long *) (map_base + (PIOC_SODR & MAP_MASK))) = PIO_C10;
if (i >= p1) *((unsigned long *) (map_base + (PIOC_CODR & MAP_MASK))) = PIO_C11; else *((unsigned long *) (map_base + (PIOC_SODR & MAP_MASK))) = PIO_C11;
if (i >= p2) *((unsigned long *) (map_base + (PIOC_CODR & MAP_MASK))) = PIO_C12; else *((unsigned long *) (map_base + (PIOC_SODR & MAP_MASK))) = PIO_C12;
if (i >= p3) *((unsigned long *) (map_base + (PIOC_CODR & MAP_MASK))) = PIO_C13; else *((unsigned long *) (map_base + (PIOC_SODR & MAP_MASK))) = PIO_C13;
for (count=0; count<400; count++); //dummy delay }