Voici le code que j'ai créé pour Visual Studio. Il allume et éteint la LED.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO.Ports;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace Allumer_une_led_arduino
{
public partial class Form1 : Form
{
String DataIN;
public Form1()
{
InitializeComponent();
}
private void on_Click(object sender, EventArgs e)
{
serialPort1.Open();
serialPort1.Write("A");
serialPort1.Close();
}
private void off_Click(object sender, EventArgs e)
{
serialPort1.Open();
serialPort1.Write("B");
serialPort1.Close();
}
private void serialPort1_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)
{
if (serialPort1.IsOpen)
{
DataIN = serialPort1.ReadExisting();
this.Invoke(new EventHandler(ShowData));
}
else
{
MessageBox.Show("Le port série n'est pas ouvert. Veuillez ouvrir le port série et réessayer.", "Erreur de connexion", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
private void ShowData(object sender, EventArgs e)
{
textBox1.Text += DataIN;
}
}
}
Et voici mon code arduino. Qui va allumer la led quand A est reçu et l'éteindre quand B est reçu. J'ai vérifié le printf de l'arduino il envoie la lettre reçue sur le port série mais sur visual studio ça ne s'affiche pas. Je ne sais pas si vous pouvez m'aider, mais j'ai besoin de votre aide.
/*
* Blink
* Turns on an LED on for one second,
* then off for one second, repeatedly.
*/
#include <Arduino.h>
char c;
void setup() {
Serial.begin(9600);
// initialize LED digital pin as an output.
pinMode(LED_BUILTIN, OUTPUT);
}
void loop() {
Serial.println("Hello");
if (Serial.available() > 0) {
c = Serial.read();
if (c == 'A') {
digitalWrite(LED_BUILTIN, HIGH);
Serial.println(c);
} else {
digitalWrite(LED_BUILTIN, LOW);
Serial.println(c);
}
}
}
Partager