salve,premetto che sono poco esperto volevo creare un piccolo programma con arduino e visual basic per accendere dei relè.
Ho provato con due protocolli diversi:firmata e serial port.
Con il primo(firmata) funziona tutto perfettamente senza ritardo di comunicazione invece con il serial port ho qualche problema di ritardo
**PROBLEMA:**quando clicco sul button 1 alcune volte non attiva il relè ma se lo clicco più di una volta allora parte
Allego il codice per arduino usando il protocollo serial port
int led=13;
int led1=12;
int stato;
int stato1;
void setup() {
Serial.begin(9600);
pinMode(led,OUTPUT);
pinMode(led1,OUTPUT);
pinMode(10, OUTPUT);
}
void loop() {
stato=Serial.read();
if (stato == 'A'){
digitalWrite(led,HIGH);
tone(led, 1000, 500);
delay(1000);
} else if (stato == 'S') {
digitalWrite(led,LOW);
}
stato1=Serial.read();
if (stato1 == 'B'){
digitalWrite(led1,HIGH);
} else if (stato1 == 'C') {
digitalWrite(led1,LOW);
}
}
i
allego il codice per quanto riguarda serial port lato[b] visual basic[/b]
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
SerialPort1.Close()
SerialPort1.PortName = "COM20"
SerialPort1.BaudRate = 9600
SerialPort1.Open()
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
SerialPort1.WriteLine("A")
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
SerialPort1.WriteLine("S")
Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click
SerialPort1.WriteLine("B")
Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
SerialPort1.WriteLine("C")