comunicazione seriale (passare valori int )

buonasera a tutti e grazie in anticipio per l'attenzione, anche cercando sul web non sono riuscito a trovare spiegazioni esaurienti, vi illustro il problema :tramite porta seriale riesco a comunicare con arduino sia tramite pc ma anche con il bluethooth( con l modulo relativo) indifferentemente ma soltanto per passare valori char (esempio :accendere un led inviando H e spegnerl inviando L ) il mio inento sarebbe quello di riuscire a regolarne l'intensità con il pwm passando tramite seriale un valore intero ma in generale non riesco a capire come passare valori interi tramite seriale sapete come fare?
(ho arduino UNO )

Buongiorno e benvenuto sul forum anticipo il moderatore,
essendo il tuo primo post, nel rispetto del regolamento, ti chiedo cortesemente di presentarti QUI (spiegando bene quali conoscenze hai di elettronica e di programmazione ... possibilmente evitando di scrivere solo una riga di saluto) e di leggere con MOLTA attenzione il su citato REGOLAMENTO ... Grazie.

P.S.: Qui una serie di link utili, NON necessariamente inerenti alla tua domanda:
- serie di schede by xxxPighi per i collegamenti elettronici vari: ABC - Arduino Basic Connections
- pinout delle varie schede by xxxPighi: Pinout
- link generali utili: Link Utili

Quando hai fatto possiamo rispondere :slight_smile:

scusami hai ragione , provvedo immediatamente

Allora se i dati arrivano dalla seriale puoi provare con la Serial.parseInt() che dovrebbe fare al caso tuo, il risultato ritornato lo metti in una variabile unsigned int e dovresti riuscire nel tuo intento

praticamente questa funzione quando viene chiamata attende la comunicazione da seriale e la salva come valore intero?

Si, nel link al reference c'è scritto quali condizioni fanno terminare la lettura, prima verifica se ci sono caratteri disponibili nella seriale, ad esempio:

int pwm = 0;
if (Serial.available() == 0){
  pwm = Serial.parseInt();
}

fabpolli:
Si, nel link al reference c'è scritto quali condizioni fanno terminare la lettura, prima verifica se ci sono caratteri disponibili nella seriale, ad esempio:

int pwm = 0;

if (Serial.available() == 0){
  pwm = Serial.parseInt();
}

non sovrascrive il dato se su serial avaiable metto diverso (!=) anzichè uguale(==)

grazie mille per adesso il funzionamento è ottimo,

Si hai ragione errore mio nel mettere il codice :slight_smile: funzionava esattamente al contrario

perfetto grazie;
comunque il progetto reale è un po' più grande se vuoi posso illustrarlo qua o altrove

Se hai voglia ben volentieri ogni progetto può essere interessante sotto molti aspetti

niente di speciale in realtà si tratta di fare una lampada con led di vari colori in cui poter impostare intensità e colore a piacemento e/o giochi di luce tramite telefono