Show pageOld revisionsBacklinksAdd to bookExport to PDFBack to top This page is read only. You can view the source, but not change it. Ask your administrator if you think this is wrong. ====== LED ====== ==== Collegare LED RGB a Raspberry Pi ==== Il pin più lungo del LED è il **common**, che sarà un anodo o un catodo a seconda della tipologia del LED. === Verificare la tipologia del LED === * Mettere il multimetro in modalità contatto * Collegare il multimetro al common e a un altro pin qualsiasi * Se il LED si illumina quando il pin common è collegato al cavo di ground, allora il common è un **catodo**. * Se il LED si illumina quando il pin common è collegato al cavo positivo, allora il common è un **anodo** === Forward voltage === Il forward voltage è la quantità di volt che il led assorbe e determina quindi, a parità di resistenza, una corrente maggiore. **Metodo rapido**: Calcolare la resistenza basandosi sul forward voltage minimo fornito dalle specifiche del led **Metodo esaustivo**: Determinare manualmente il forward voltage * Mettere il multimetro in modalità diodo * Collegare il multimetro al common e a uno dei restanti pin RGB * Il valore misurato è il forward voltage per quello specifico colore Esempio\\ Red Vf = 1.8V\\ Green Vf = 2.8V\\ Blue Vf = 2.8V\\ Il voltaggio di alimentazione che dobbiamo fornire al LED deve essere maggiore di ogni forward voltage di un singolo colore.\\ Esempio: VCC = 3.3V (maggiore di 2.8V) Verificare la corrente tipica sulle specifiche del LED.\\ Esempio: I = 25mA = 0.025A (per singolo colore) === Nota === Il raspberry pi 4 supporta ufficialmente massimo 16mA per pin e 50mA in totale.\\ Occorre quindi abbassare la corrente in modo che I < 16mA e 3xI < 50mA\\ Esempio: I = 10mA = 0.01A Notare che dimezzando la corrente la differenza luminosa percepita è in realtà molto piccola === Calcolo della resistenza === Dividere la differenza tra VCC e Vf per l'amperaggio stabilito, ottenendo la minima resistenza necessaria. \\ \\ **Formula**: R = (VCC - Vf) / I Calcolo: * Red R = (3.3V - 1.8V) / 0.01A = 150ohm * Green R = (3.3V - 2.8V) / 0.01A = 50ohm * Blue R = (3.3V - 2.8V) / 0.01A = 50ohm === Collegamento al Raspberry === Collegare a ognuno dei tre pin RGB la relativa resistenza calcolata\\ Attaccare ogni resistenza a un pin GPIO\\ Se il common del LED è un anodo, collegarlo a 3v3\\ Se è un catodo, collegarlo a GND === Installazione software di controllo === Scaricate sul raspberry tutti gli script per led presenti sul git iotaiuto <code> cd $HOME mkdir led_scripts cd led_scripts # posizionare qui i seguenti file: # led_init.sh, led_lib.py, led.py, led_server.py chmod +x led_init.sh cd /etc/systemd/system # posizionare qui i seguenti file: # led.service, led-server.service sudo systemctl daemon-reload sudo systemctl enable led.service sudo systemctl enable led-server.service # riavviare il sistema </code> Spiegazione dei file:\\ led_lib.py è il controllore dei led\\ led_server.py è un listener di rischieste di controllo dei led\\ led.py è un handler per eseguire una richiesta di controllo del led manualmente o tramite home assistant\\ led_init.sh è uno script che monitora lo stato della vpn (e eventualmente di altri servizi) e regola il led di conseguenza\\ === Home assistant script === Modificare il file ~/homeassistant/configuration.yaml aggiungendo: <code> shell_command: led_ok: python ~/led_scripts/led.py ok led_error: python ~/led_scripts/led.py error </code> Vedere il file led.py per ulteriori comandi Restartare home assistant\\ Ora dalla GUI è possibile aggiungere due script che chiamano i servizi appena creati projects/iotaiuto/led.txt Last modified: 2021/12/24 10:10by daniel