Ethical DIY

Progetti hardware & software etici


Menu orizzontale con sottomenu CSS






 




Pagina principale per Raspberry



Informazioni di base




La basetta sperimentale (BDS)


Applicazioni



Librerie e programmi
  • La gestione delle librerie

  • Programmi applicativi
    • Protocollo_I2C
    • I2C_BME280
    • I2C_BME680
    • I2C_ Display_LCD_1602
    • I2C_Display_SSD1306
    • I2C_SGP30-SGP40
    • SPI_RFID_RC522
    • One-wire_18B20
    • DHT11/DHT22
    • Motore_elettrico
    • Servomotore
    • Motore a passo
    • Encoder_Joystick
    • Pulsanti/piccoli_sensori
    • Led
    • Telecamera_OpenCV
    • Gestione_immagini
    • Ingressi_Analogici
    • Display: LCD1602
    • Display: SSD1306 Oled
    • Display: ST7735
    • Ingressi analogici
    • Programmi vari














 








 
















Raspberry PI 3/4/5
Pulsanti/sensori digitali

Anche se quasi non ce ne accorgiamo più, i led sono ovunque nella nostra vita: negli schermi televisivi, nei display dei pc e dei cellulari, nelle lampadine nelle multicolori lucine di Natale... Se di colpo sparissero dalla nostra vita, essa sarebbe molto più grigia e priva di informazioni!
Ma in questa sezione ci riferiamo a
quei piccoli vecchi, familiari, umili , cilindretti colorati che vengono usati nei vari apparecchi elettronici.
Nei progetti di base che verranno presentati qui, oltre che a essere delle semplici luci colorate, hanno anche lo scopo di sostituire nei test altri attuatori, come per esempio dei relè.

l1



Come collegare i led alla BDS

x1

4x
I led hanno ben cinque connettori dedicati (con una resistenza in serie per evitare che vengano danneggiati):
Le posizioni sono rispettivamente:
Led1 - GPIO19
- collegato a DG1
Led2 - GPIO18
- collegato a DG2
Led3 - GPIO21 - collegato a DG3
Led4 - GPIO12 - collegato a DG4
Led5 - GPIO5   -  collegato aDG5
"Led1 collegato aDG1" significa che condividono lo spesso GPIO; questo è stato studiato affinché si possa collegare per esempio un relè in parallelo al led.

Nota: sui conettori DG1, DG2, DG3 può essere collegato direttamente un relè tipo KY-019; su DG4 e DG5 la connessione richiede un cavetto a tre fili, perchè la disposizione di pin è differente, per poter collegare anche altri tipi di periferiche.







La creazione dell'ambiente virtuale e l'installazione delle librerie

Ipotizziamo che sul desktop del proprio Raspberry si crei una cartella "Projects" e all'interno una sottocartella "elmot" in cui creeremo l'ambiente virtuale (che chiameremo "led"), le librerie necessarie e i programmi.
Nota: naturalmente i nomi dati alle sottocartelle possono essere variati a piacere. Postulando che si siano create le cartelle indicate, si può iniziare con la programmazione.
Aprire un terminale (la quarta icona in alto a destra) term e digitare quanto segue:
cd Desktop/Projects/switch  per spostarsi nella cartella "switch ";
python3 -m venv swt            per creare l'ambiente virtuale "swt ";
source  swt/bin/activate         per attivare l'ambiente virtuale: apparirà (swt) all'inizio della nuova riga;

A questo punto è possibile installare le librerie richieste, quali "RPi.GPIO" oppure "GPIOZERO"; ma cè ance un'altra soluzione, quella di rendere disponibile nell'ambiente virtuale le librerie "di base" installate con Python, digitando il comando "python -m venv --system-site-packages env" (al posto di "env" si può inserire il nome dell'ambiente virtuale preferito.
In questo caso sarà poi sufficiente installare solo le librerie specifiche per i vari sensori, guadagnando in semplicità e risparmio di occupazione di scheda SD o di disco.









Dove trovare altri programmi che utilizzano i led

Su queste pagine potrai trovare dei programmi che utilizzano dei led:
- Programmi con sensore BME280
- Programmi con sensore BME280 e SSD1306
- Programmi con sensore BME680
- Programmi con sensore BME680 e SSD1306

- Programmi con sensore DHT11
- Programmi con sensore DHT11 e SSD1306








Il primo programma: l'intramontabile blink!

Il primo programma, come indicato nel titolo è l'intramontabile blink, il programma forse più eseguito per Arduino, ESP32, ecc.
Non fa altro che far lampeggiare un led con la frequenza di un secondo.
Il led si inserisce sul connettore "Led1".



Clicca qui per scaricare il programma in formato ".zip"
Clicca qui per visualizzare il programma in formato testo.

Se stai eseguendo queste operazioni direttamente dal Raspberry, puoi scaricare e scompattare direttamente il programma nella cartella  "Desktop/Projects/led"
e lanciarlo con il seguente comando: "python blinlk.py"









ll secondo programma: ancora blink,m ma moltiplicato per cinque!

Ancora blink! Ma in questo caso, lampeggiano in sequenza i cinque led, da Led1 a Led5.
Probabilmente inutile, ma aiuta a prendere confidenza con i connettori per i led.



Clicca qui per scaricare il programma in formato ".zip"
Clicca qui per visualizzare il programma in formato testo.

Se stai eseguendo queste operazioni direttamente dal Raspberry, puoi scaricare e scompattare direttamente il programma nella cartella  "Desktop/Projects/led"
e lanciarlo con il seguente comando: "python blink5.py"







ll terzo programma: led fade

Il terzo programma aiuta ad utilizzare la funzione PWM, e far  "pulsare" il led, iniziando con una luminosità bassa per passare progressivamente alla massima, e viceversa.

Il led si inserisce sul connettore "Led1".



Clicca qui per scaricare il programma in formato ".zip"
Clicca qui per visualizzare il programma in formato testo.

Se stai eseguendo queste operazioni direttamente dal Raspberry, puoi scaricare e scompattare direttamente il programma nella cartella  "Desktop/Projects/led"
e lanciarlo con il seguente comando: "python ledfade.py"







Il quarto programma: led pwm

Questo programma fa esattamente la stessa cora del precedente, ma utilizza un'altra tecnica. Ho pensato di inserirlo per mostrare diversi approcci allo stesso problema. Per renderlo meno noioso, i cinque led "pulsano" in sequenza



Clicca qui per scaricare il programma in formato ".zip"
Clicca qui per visualizzare il programma in formato testo.

Se stai eseguendo queste operazioni direttamente dal Raspberry, puoi scaricare e scompattare direttamente il programma nella cartella  "Desktop/Projects/led"
e lanciarlo con il seguente comando: "python ledpwm5.py"









Il quinto programma: un led a tre colori

I led RGB (red, green, blue) sono fondamentali, perche dosando le tre colorazioni di base si possono ottenere tutti i colori, compreso il bianco, e sono alla base dei display moderni, per televisori, computer, cellulari, tablet, ecc.
Questo programma presenta aletrnativamente le settecolorazioni di base, da cui si possono, modulando i colori, ottenere ogni sfumatura.
Ecco i colori che cicleranno: rosso, verde, blu, giallo, ciano, magenta, bianco.



Ho pensato di proporre due versioni dello stesso programma, perfettamente identici, ma che usano dei GPIO diversi, per poter essere utilizzato sia da:

1: led RGB su scheda, quali KY-009 o KY-016;
2: un led RGB "nudo".
Programma in versione 1:
IL programma varia i colori e propone sul terminale i colori che sta utilizzando.
I led RGB modelli
KY-009 o KY-016 possono essere connessi sullo zoccolo I2C2, attivando anche il quinto pin (GPIO16) per poter visualizzare i 3 colori. I pin del led vanno collegati nel modo seguente:
modulo led        I2C2
"-"                        GND
"G"                      SCL
"R"                      SDA
"B"                      P16
Enrambi i moduli usano la stessa piedinatura. A volte il pin di massa può avere la dicitura "-" oppure "Gnd".


16
KY-016
9
KY-009

Clicca qui per scaricare il programma in formato ".zip"
Clicca qui per visualizzare il programma in formato testo.

Se stai eseguendo queste operazioni direttamente dal Raspberry, puoi scaricare e scompattare direttamente il programma nella cartella  "Desktop/Projects/led"
e lanciarlo con il seguente comando: "python ledrgb1.py"






Programma in versione 2:

La seconda versione del programma è adatto ai led RGB "nudi", ovvero senza una basetta a cui essere collegato. Nell'immagine a destra è rappresentato un tipico led RGB. Esso ha quattro terminali, ma con una disposizione diversa da KY-009 o KY-016, e si riconoscono in base alla loro lunghezza. Il reoforo più lungo eè quello di massa ("-" o "GND"), Tovato quello, ifili relativi ai colori si individuano facilmente.
Per i test ho connesso il led RGBallo zoccolo RFID1, con la seguente piedinatura:
Led RGB          RFID1
Rosso               P25-RST
"-"                      GND
BLU                  P9-MISO
Verde               P10-MOSI
Come si vede, dallo zoccolo si è saltato "IRQ", perchè non è connesso ad alcun pin.

Nota: il led dovrebbe essere connesso allo zoccolo con tre resistenze da 220 Ohm,(una per ogni terminale di colore), ma per un breve test può essere anche collegato direttamente. Non usarlo così per troppo tempo, altrimenti si potrebbe danenggiare per un eccesso di corrente.

rgb
Led RGB




Clicca qui per scaricare il programma in formato ".zip"
Clicca qui per visualizzare il programma in formato testo.

Se stai eseguendo queste operazioni direttamente dal Raspberry, puoi scaricare e scompattare direttamente il programma nella cartella  "Desktop/Projects/led"
e lanciarlo con il seguente comando: "python ledrgb.py"










Per contatti: etdiy@centroanahata.it