Si era discusso degli arduinisti, con alcune conclusioni parziali.
Qui abbiamo un caso di quelli trattati, ovvero della persona che ha conoscenze di programmazione C, ma non ha la minima idea di come funzioni un microcontroller.
Fin qui non c'è nulla di anormale, né di problematico. Uno non sa, non è una colpa: imparerà.
Quello che mi fa intervenire duramente è la classica posizione di porre una questione e non desiderare la risposta corretta, ma la la risposta che si vuole sentire. Questo è inaccettabile.
Come se chi ha risposto sia un citrullo incompetente perché non replica le parole di verita del guru (del cuggino, dell'amico esperto, dell'altro forum, del noto docente, de me nona, ad libitum).
Se quanto è stato detto qui non suona bene, consiglio almeno di leggere le istruzioni dell'arducoso. Non ci vuole molto (e di solito, prima si leggono leistruzioni, poi si opera...).
https://www.arduino.cc/en/Tutorial/DigitalPinsdice: "current to brightly light up an LED (don't forget the series resistor)..."
e
"...Short circuits on Arduino pins, or attempting to run high current devices from them, can damage or destroy the output transistors in the pin, or damage the entire Atmega chip. "
Più chiaro di così.
E se non basta a
https://www.arduino.cc/en/Tutorial/Blinksi legge
"To build the circuit, connect one end of the resistor to Arduino pin 13. Connect the long leg of the LED (the positive leg, called the anode) to the other end of the resistor."
Peraltro, avendo una minima cognizione nella lettura di uno schema elettrico, a
http://brittonkerin.com/annotateduino/a ... e_uno.htmlsi nota come al pin 13 sia già collegato un led, che ha, ovviamente, la sua resistenza in serie.
Chiaro?
Una delle "scuole di pensiero" citate è in realtà scuola di incompetenza, creata da elettrotamarri che, dove non si tratta di pura ignoranza, presumono di essere ganzi con l'usare il minimo numero di componenti. Per cui, per prima cosa, si eliminano le resistenze in serie ai led.
Se il led è acceso staticamente, si ottiene di avere il port che emette la massima corrente possibile, cosa che in genere sia led che port sopportano per un certo tempo, anche se solitamente defunge prima il port che non il led (per la fastidiosa legge di Ohm e il discutibile effetto Joule, maledetti loro...).
Più complessa è la questione per led alimentati a impulsi; qui la skuola killer dice che tanto sia il led che il port possono sopportare impulsi di corrente elevati per breve tempo. Io sono un mago e faccio un drive a basso duty cycle, così il silizio ha tempo di smaltire e risparmio 0,004 euro dell'antipatica resistenza, che proprio non ho idea di che beep serva... Peccato che questo, anche quando appare funzionare, riduce la vita del port in modo imprevedibile.
Quanto al Maffucci, che fa notare come al "pin 13" ci sia già un led sullo stampato (e si vede dallo schema, ad essere andati a leggerlo) con la sua brava resistenza serie e che poi impicca un led esterno alla morsettiera, va detto senza alcuna timidezza che è un partecipante e sostenitore della skuola di cui sopra, doppiamente doloso in quanto passa per "noto docente". Anch'io passo per noto docente, ma cxxate cerco di non dirnem, per quanto possibile.
L'altro lato non immediatamente palese, ma molto visibile, del fatto che si applica un programma ad un hardware senza sapere alcunchè di questo hardware e, sopratutto, senza avere la minima idea di cosa si stia facendo è il vezzo del tutto arduinista di parlare di pin x o y, non in funzione dei port del microcontroller, ma DEI NUMERI SULLA MORSETTIERA!!!
Arduinisti, se volete sviluppare su microcontroller, avete a che fare con l'hardware, direttamente. Non bastano le "librerie": per usare sensatamente il componente occorre sapere almeno in linea di massima di cosa si tratta, che cosa offre, come funziona, come lo sfrutto, come collego all'esterno.
Se non si sa, si cerca di imparare, principalmente sfruttando la conoscenza di altri.
E se quanto si apprende non combina con la propria teoria, si mette in discussione quanto si riceve, ma per prima cosa si mette in discussione la propria teoria e si cerca di capire dove sta la soluzione.
Altrimenti non si impara niente.