Usare gli array con arduino per controllare lo stato di più pulsanti #15
HTML-код
- Опубликовано: 24 май 2018
- In questo video del tutorial italiano di arduino vedrai come utilizzare gli array per controllare lo stato di più pulsanti.
Puoi scaricare gratuitamente il mio libro: "Il manuale di Arduino - Guida Completa" dal mio sito: www.zeppelinmaker.it oppure direttamente da gumroad: gumroad.com/l/arduino
guarda un po, dopo 5 anni sono sempre qui ahah, tantissimi auguri Paolo a te e tutte le persone a cui vuoi )e ti vogliono bene!!! 🎄🎄🎄
Adoro come spieghi le cose!!!!
Grazie Paolo! Che chicca! Questa dritta è formidabile!
Spettacolo, molto interessante e veloce semplificando la scrittura 👏👏👏👏
Sta cosa l'hai spiegata mooolto meglio tu dei corsi su internet
Mi mancava il C++. Non lo pratico da circa 25 anni ma è una cosa che ti rimane dentro e quando vedi uno sketch come questo ti ritorna in mente tutto. Devo recuperare il vecchio libro di testo delle superiori
Grazie 🌟
gia e bello tosto, grazie per le lezioni :)
Grazie a te!
grande ho capito tutto grazie mille
:-)
EH MA QUESTO è PROPRIO TOSTO...
comunque tu vai come una freccia :) ... menomale che c'è il tasto pausa ahah
Benissimo!
grazie paolo
Anche se a distanza da un pò di tempo , vorrei chiedere cortesemente come gestire l'accensione di un led accesso o spento, poichè lampeggia essendo inserito lo skethc di accensione in un ciclo for.Invece se lo implemento con un if ho la sequenza di accensione corretta, ma perdo la possibilità di configurare i pin con l'array. Grazie per la cortesia
Ciao Paolo, premetto che sono alle prime armi con la programmazione degli sketch , volevo chiederti se, in questo caso, volendo avere uno stato di risposte da seriale non in continuo loop ma definito alla pressione di uno dei tasti, si potrebbe inserire un ciclo while che alla pressione mi dica lo stato del pulsante premuto 1 sola volta . Grazie
Ciao e complimenti per i video e per il tuo libro "elettronica per maker".
domanda in ritardo ed elementare. Perché il tipo dell'array é "int" e poi lo puoi inizializzare con LOW e non con un numero?
LOW é una parola chiave corrispondente a un numero e fa eccezione? Grazie. PS. certo che questa lezione è stata tosta da metabolizzare!
Ciao, si. LOW è una costante predefinita che corrisponde a un numero intero. Prova a stamparla con Serial.println(LOW); !
@@zeppelinmaker Essendo un dato digitale però userei come tipo bool, così si risparmia memoria. (LOW e false sono sinonimi, come anche HIGH e true) Mi sfugge qualcosa?
Ciao Paolo,
bellissima spiegazione come al solito. Magari si potrebbe fare un video che tramite pulsanti si possono comandare dagli 8 ai 16 relay? Grazie mille
beh si... se hai capito la tecnica non è difficile da applicare
anche io li usoooooooo gli array, yuppiiiiiiiiiiii
Pure io
ciao Paolo, ho scritto lo sketch come il tuo e quando premo il pulsante, da "off" passa a "on" ma poi non torna ad "off", mi sapresti dire da cosa è dovuto? grazie in anticipo
Ciao mi presento mi chiamo Nicola ti sto seguendo da qualche giorno e ti premetto che non sono per niente esperto di elettronica.
Ti seguo perché i tuoi video li trovo molto interessanti e semplici da capire....
Io sono appassionato di simulatori di volo e volendo poter gestire l'avionica non con la tastiera ma con pulsanti e potenziometri esterni.
Io come uso x-planet11 e flyght simuletor2020 e sono gestibili anche con pulsanti esterni.
Volevo chiederti se con Arduino potrei gestire 6 pulsanti e 4 potenziometri e se secondo te per uno come me inesperto di elettronica si riesce a fare.
Se hai qualche consiglio utile lo accetterei molto volentieri.
Ti saluto e ti ringrazio del tuo tempo perso per me.
Ciao
Nicola.
Ciao puoi farlo con Arduino Leonardo che può simulare una comune tastiera USB. C'è un video in playlist
Salve,ho fatto questo piccolo programma:
int pinled[2]= {13, 6};
void setup() {
for(int i=0; i
void loop() {
for(int i=0; i
Salve Paolo, ho comprato 3 libri dei suoi e credo prenderne altri , mi chiedevo che programma sta usando in questo video e dove lo posso trovare, grazie.
ruclips.net/video/6eRqdXi1GMc/видео.html
FINALMENTE DOPO ALMENO 600 PUBBLICITÀ SONO RIUSCITO AD APRIRE IL VIDEO!
:-( mi dispiace... ma quelle mi permettono di campare
@@zeppelinmaker ma non hai un'azienda?
Io volevo fare un programma, con dei comandi Bluetooth, quindi ho memorizzato tutti i comandi in String, e con un array; per dividere i vari comandi, uso una virgola normale?
tipo:
{"abc", "run", "stop", "start"}
se è così, si!
dunque, immagino di fare una domanda stupida ma, questo è il mio livello. Nella riga 6, che contiene quel ciclo che permette di scansionare gli spazi dell'array int i è una variabile creata al momento? non deve essere dichiarata come avevi fatto le altre volte? se venisse dichiarata prima, mettiamo alla riga 3 (int i = 0) si potrebbe poi omettere la stessa parte di istruzione alle righe 6, 14 21?
Allora, mi sono risposto da solo all'ultima mia domanda, ho provato e succede una cosa strana, funziona come avevo supposto spostando prima del void setup l'istruzione int i = 0 ma...solo se nelle righe di spazzolata dei tre spazi dell'array metto dopo la parentesi punto e virgola, così (; i < 3 ; i++); altrimenti mi dà errore nella compilazione, e questo ahimè non riesco a capirlo proprio.
alla riga 6 uso una variabile locale, visibile sono all'interno dell'int. Se definisci la i come "globale" il corpo del for deve essere: for(i = 0; i
Salve , grazie ai tuoi video ho realizzato un progettino " commutatore di antenne radio " che mi permette di commutare 6 relay coassiali su un unico cavo e selezionare tramite tastiera adesso vorrei verificare lo stato dei relay e vusualizzarlo .potresti aiutarmi a capire come leggere lo stato dei pinout e visualizzarli su un LCD ?
Memorizza lo stato dei rele' su delle variabili (o array) e poi le leggi per sapere come sono
mi puoi indirizzare ad un tuo video dove magari capire meglio la storia degli array ? qui mi sa che si danno per scontate molte cose che nella playlist di arduino nello specifico non sono considerate ? o magari sono io che sto fondendo eheh
Magari ne faccio uno su misura...
@@zeppelinmaker ma non credo sia necessario... basta mettere pausa al video... e farsi uno schemino... 😉😉😊... parlo per me che sono proprio a zero 😁😁
@@PietroMaker io oltre alla pausa usata a iosa l'ho visto e rivisto mettendo in pausa, ricopiando i passaggi cercando di capirli...e ogni volta qualcosa si chiariva...poi...di nuovo sfugge dove sembrava di aver compreso...azz, ma mi sembrava ...ah no... siiiiii, forse alla fine l'ho abbastanza digerito, ma non so se domani mi ricordo ancora come funziona. Comunque anch'io ho trovato che da concetti elementari delle scorse lezioni le ultime due per noi molto basic menano, menano duro...e siamo solo all'inizio
in week-end semmai domenica farai una diretta che sarebbe fantastico??
Eh... domenica devo recuperare i figli che sono agli scout. Mi organizzo prima di andare in ferie, ok?
Salve, Le pongo una domanda da noob quale sono.. non capisco la riga: stato = |stato ; cioè non capisco il perchè di questo comando.. Saluti, Lucio.
!stato significa il contrario del valore che è memorizzato dentro stato. lo salvi nella variabile stessa. Equivale a invertire lo stato della variabile
"di solito i programmatori sono molto pigri" assolutamente si xD xD xD
Ciao. non è possibile, vedere gli on/off fissi sul monitor seriale e non mentre scorrono?
ciao no. Puoi sempre collegare un display
questo si chiama programmare :) ..saper semplificare automatizzando il più genericamente possibile
salve, sto incominciando a seguire tutte le sue lezioni, però in questa sto avendo un problema e non riesco a risolverlo. praticamente ho ricopiato uguale uguale a come ha fatto lei, però mi da un problema con l'ultima graffa e non riesco a capire il motivo, grazie per la risposta
int key[3] = {LOW, LOW, LOW};
int pin[3] = {7,8,9};
void setup()
{
for (int i = 0; i < 3 ; i++) {
pinMode(pin[i], INPUT);
}
Serial.begin(9600);
}
void loop()
{
for (int i = 0; i < 3 ; i++) {
if (digitalRead(pin[i]) == HIGH) {
key[i] = !key[i];
delay(200);
}
}
for (int i = 0; i < 3 ; i++) {
if (key[i] == HIGH) {
Serial.print("PIN ");
Serial.print(pin[i]);
Serial.println(" ON");
} else {
Serial.print("PIN ");
Serial.print(pin[i]);
Serial.println(" OFF");
}
}
manca l'ultima graffa che chiude il loop(): metti in fondo }
@@zeppelinmaker Grazie mille, non l'avevo notato 😅
Paolo, lo sketch non si vede bene quando lo compili su Tinkercad, peccato però...
oddio, non mi pare sia così piccolo... ma lo guardi sul cellulare? L'ho rivisto ora sul pc e mi pare leggibile.
@@zeppelinmakereh si, sul cellulare.
Comunque dai è meglio quando compili sull' IDE di Arduino, soprattutto quando gli sketch si cominciano a complicare.
Comunque grazie lo stesso capisco le tue esigenze...
Non capisco come possa funzionare, c'è digitalread(pin[i]..... ma così il valore di i sarà 0,1 o 2 invece i pin sono il 7, 8 e 9
pin[] è un array. i è l'indice che "seleziona" le caselle dell'array in cui sono contenuti i numeri dei pin. Prova...
@@zeppelinmaker Hai perfettamente ragione. Mi era sfuggito. Grazie Mille e complimenti per i video.
Non capisco, lo trovo inutile in questo caso
prova a vederti il video sugli array nel corso di coding
Paolo aliverti non va molto d'accordo con le parentesi ahahahha
Si ma esprima scrivi una cosa poi cancelli e scrivi un altra cosa chi ti segue va in confusione