câblage
La plus grande broche de la LED correspond à la cathode à relier à la masse
De gauche à droite
|
|
1234 |
Programme Arduino
Le programme consiste à lire les données reçues sur la liaison série, d’en extraire les données concernant la commande des leds. Le pilotage des leds à proprement parlé s’effectue à l’aide des instructions analogWrite.
Le programme est le suivant :
#define ROUGE 3 #define GND 4 #define VERT 5 #define BLEU 6 void setup() { // put your setup code here, to run once: pinMode(GND, OUTPUT); digitalWrite(GND, LOW); Serial.begin(115200); } void loop() { if (Serial.available() > 0) { byte valRouge = Serial.parseInt(); byte valVert = Serial.parseInt(); byte valBleu = Serial.parseInt(); while(Serial.available() > 0) Serial.read(); analogWrite(ROUGE, valRouge); analogWrite(VERT, valVert); analogWrite(BLEU, valBleu); } }
programme C#
l’application ressemble à ceci :
Le code final est le suivant :
using System; using System.Windows.Forms; using System.IO.Ports; namespace pilotage_led_RVB { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { if (serialPort1.IsOpen) { button1.Text = "Connexion"; serialPort1.Close(); trackBar1.Enabled = false; trackBar2.Enabled = false; trackBar3.Enabled = false; } else { button1.Text = "Déconnexion"; serialPort1.PortName = comboBox1.SelectedItem.ToString(); serialPort1.Open(); trackBar1.Enabled = true; trackBar2.Enabled = true; trackBar3.Enabled = true; } } private void trackBar1_Scroll(object sender, EventArgs e) { serialPort1.WriteLine(trackBar1.Value + "/" + trackBar2.Value + "/" + trackBar3.Value); } private void trackBar2_Scroll(object sender, EventArgs e) { serialPort1.WriteLine(trackBar1.Value + "/" + trackBar2.Value + "/" + trackBar3.Value); } private void trackBar3_Scroll(object sender, EventArgs e) { serialPort1.WriteLine(trackBar1.Value + "/" + trackBar2.Value + "/" + trackBar3.Value); } private void Form1_Load(object sender, EventArgs e) { String[] ports = SerialPort.GetPortNames(); foreach (var port in ports) { comboBox1.Items.Add(port); } } } }