Home Forum Scrivi una domanda di informatica come funziona?

Questo argomento contiene 9 risposte, ha 4 partecipanti, ed è stato aggiornato da  ottobit 6 mesi, 3 settimane fa.

Stai vedendo 10 articoli - dal 1 a 10 (di 10 totali)
  • Autore
    Articoli
  • #60656

    ottobit
    Membro

    Bhè, chiedo scusa, ma sono nuovo…

    Parlo di arduino 1, ho trovato un programmino scritto da una scuola.. Levi, mi pare, le prime cose

    che sto facendo… il solito, si collega un led al pin 13… e si fà girare il pramma. ok.

    Questo dice che si accende il led… premendo H, e si spegne premendo L….

    Fatto, non funziona.  Ma… un pò ho pensato….

    Dopo avere scritto il programma con Arduino 1.0.5-r2, lo si compila (controllo) poi si

    CARICA, poi basta. il programma passa dentro al processore, e il computer CON RELATIVA

    TASTIERA non c'entra più nulla.

    Domanda: Come farebbe arduino a "sentire" un tasto della tastiera?

    Infatti.. non và. Ma quelli della Levi… non avranno sbagliato,

    cosa non capisco?

    Grazi, saluti a tutti

    Otto

    #75560
    Piero Boccadoro
    Piero Boccadoro
    Partecipante

    Senza il codice è un po’ difficile dirtelo ;)
    Incollalo qui e lo vediamo insieme.

    #75569

    etti
    Partecipante

    Ciao Otto, a parte vedere il programmino anche se immagino come è, mettiamo subito apposto una cosa in Arduino "il programmino" si chiama Sketch.

    Per programmare Arduino visto che esisto più versioni, bisogna configurare l'IDE o l'applicazione di Windows/MAC/LINUX per la programmazione di Arduino al menu tendina "Strumenti" / "Tipo di Arduino", con la schedina Arduino che usi altrimenti non funziona correttamente o non riesce a programmarla, comunque questo ti viene detto, se la programmazione è andata a buon fine o meno in fondo alla finestra dell'IDE.

    Visto che usi la tastiera del PC i tasti "H" e "L" la devi tenere collegata al PC altrimenti il "Serial Monitor" non comunica con Arduino e viceversa con il PC.

    Ho notato che in alcune schede Arduino o versioni hanno un problema di Reset del Buffering della seriale in quel caso è necessario un ciclo di ritardo "Delay" di "3000" da valutare, vedi esempio con tanto di spiegazione;

    void setup () {
      delay (3000);                                      // Ritardo per il collegamento con il Serial Monitor
      Serial.begin (9600);                         // Inizializzazione e assegnazione del baud rate USB
      pinMode(ledPin, OUTPUT);        // Assegnazione modo porta come uscita
      pinMode(alarmPin, INPUT);      // Assegnazione modo porta come ingresso
      delay (2000);                                    // Ritardo per la stabilizzazione del sensore PIR con la zona circostante
                                                                    // prima di tenere valida la lettura di movimento
    }

     

     

     

     

    #75574

    etti
    Partecipante

    int Ventola=13;
    int incomingByte;  

    void setup()
    {
      pinMode(Ventola, OUTPUT);
      Serial.begin(9600);
    }

    void loop()
    {
      if (Serial.available() > 0) {
        incomingByte = Serial.read();
      if (incomingByte == 'H')

           {
      digitalWrite(Ventola, HIGH);
      }
        if (incomingByte == 'L') {
         digitalWrite(Ventola, LOW);
        }
      }

     }
      

    #75579

    ottobit
    Membro

    heeii, heiii, scusate…. cosa è il "serial monitor" ???

    Arduino funziona, ho fatto alcuni "sketch", quello del diodo che lampeggia, quello di due diodi

    che si altrnano, ho fatto modifiche, tutto ok.

    Non sono riuscito a spiegarmi bene….

    Come fà a la tastira a influire su uno sketch già lanciato??

    Comunque   allego lo sketch, grazie intanto.

    saluti otto

    #75580

    ottobit
    Membro

    eccolo qui!

     

    //da correggere
    int led = 13;
    int leggi_byte;
    void setup()
    {
    pinMode (led,OUTPUT);
    Serial.begin (9600);
    }
    void loop()
    {
    if (Serial.available() > 0)
    {
    leggi_byte = Serial.read();
    if ((leggi_byte == 'H') || ( leggi_byte == '1'))
    {
    digitalWrite(led, HIGH);
    Serial.write (leggi_byte);
    Serial.println ("  –> LED ON");
    }
    if ((leggi_byte == 'L') || (leggi_byte == '0'))
    {
    digitalWrite(led, LOW);
    Serial.write(leggi_byte);
    Serial.println(" –> LED OFF");

    }
    }
    }

    saluti di nuovo otto

    #75583
    IvanScordato
    IvanScordato
    Partecipante

    Ciao otto, il serial monitor è quello che ti permette di interloquire con Arduino nella fase di Debug, cioè ti permette di visualizzare i dati (possono essere numeri lettere, …) che vengono inviati sulla porta seriale e TI permette di inviare dei dati ad Arduino.
    Per utilizzare il monitor seriale devi andare su Strumenti=>Monitor Seriale.
    Dopo che apri il serial monitor ti posizioni sulla barra in alto, scrivi il carattere che vuoi inviargli e clicchi su Invia… nulla di complicato ;)
    Ecco una foto del serial monitor:

    #75587

    ottobit
    Membro

    grazie infinite Ivan, adesso non riesco.. appena posso, vado un altro pò avanti..

    saluti otto

    #75588

    etti
    Partecipante

    Per il programma non ho ancora avuto tempo per dargli un occhio, spero nel frattempo che la soluzione del Debuging la trovi da solo è la cosa più difficile da trovare in programmazione e basta anche un ";" una parentisi in meno o in più o aperta o chiusa nel momento errato che il compilatore va in errore…. oppure viene mal compilato, che non ci si aspetta che il programma funziona non correttamente.

    Ciao Otto ;)

    #75625

    ottobit
    Membro

    giusto l'indicazione del… monitor seriale.

    funziona ok. lo scheak non aveve nulla.

    grazie. (ma tornerò con altre cose)

    saluti

Stai vedendo 10 articoli - dal 1 a 10 (di 10 totali)

Devi aver eseguito l’accesso per poter rispondere a questa discussione.