Inviare dati ad Arduino

Da Gambas-it.org - Wikipedia.
Versione del 25 giu 2024 alle 15:02 di Vuott (Discussione | contributi)

(diff) ← Versione meno recente | Versione attuale (diff) | Versione più recente → (diff)

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