Differenze tra le versioni di "Inviare dati ad Arduino"
Da Gambas-it.org - Wikipedia.
Riga 31: | Riga 31: | ||
− | Il codice | + | Il codice dell'applicativo Gambas comunica con la porta seriale "/dev/ttyUSB0" o potrà essere anche “/dev/ttyACM0” (ovviamente il numero finale può essere anche diverso se sono stati connessi altri dispositivi analoghi.) |
Private SerialPort1 As SerialPort | Private SerialPort1 As SerialPort | ||
Versione delle 13:18, 13 ott 2021
Mostriamo un esempio pratico per inviare dei dati ad Arduino. E' necessario attivare il Componente gb.net .
In particolare il programma Gambas invierà ad Arduino dei valori mediante uno Slider, il cui valore massimo è posto a 255 ed il minimo a zero. Arduino accenderà un diodo-led, posto sui piedini gnd ed 11, la cui intensità di luminescenza sarà determinata dal valore inviato mediante lo Slider da Gambas.
Il codice presente in Arduino sarà dunque il seguente:
int led = 11; byte SerialIn; void setup() { Serial.begin(57600); } void loop() { if (Serial.available() > 0) { SerialIn = Serial.read(); // Legge il valore ricevuta da Gambas Serial.println(SerialIn, DEC); // Scrive in rappresentazione decimale nel "monitor seriale" il valore ricevuto da Gambas analogWrite(led, SerialIn); // Assegna alla varibile "led", per modificare l'intensità di luminescenza del led, il valore ricevuto da Gambas } }
Il codice dell'applicativo Gambas comunica con la porta seriale "/dev/ttyUSB0" o potrà essere anche “/dev/ttyACM0” (ovviamente il numero finale può essere anche diverso se sono stati connessi altri dispositivi analoghi.)
Private SerialPort1 As SerialPort Public Sub Button1_Click() With Slider1 .MinValue = 0 .MaxValue = 255 End With With SerialPort1 = New SerialPort .PortName = "/dev/ttyUSB0" ' Questa porta seriale o quella disponibile .Speed = 57600 .Parity = 0 .DataBits = 8 .StopBits = 1 .FlowControl = 0 .Open End With End Public Sub Slider1_Change() Write #SerialPort1, CByte(Slider1.Value) As Byte ValueBox1.Value = Slider1.Value End Public Sub Form_Close() If SerialPort1.Status = Net.Active Then SerialPort1.Close End