Module RGB et Arduino

Module RGB

Pin Description Rang
Pin - Pin ground 0v
B Pin de la couleur Bleu (Blue) , reçoit un signal modulé numérique type PWM tension: 0-5v
valeur :0-255
G Pin de la couleur Vert(Green) , reçoit un signal modulé numérique type PWM tension: 0-5v
valeur :0-255
R Pin de la couleur Rouge(Red) , reçoit un signal modulé numérique type PWM tension: 0-5v
valeur :0-255

 

L'idée principale est de connecter physiquement la carte ESP32 avec le module RGB. La carte EPS32 fera office aussi de point d'accès Wi-Fi et de serveur web. Ce serveur sous est accessible par l'adresse IP par défaut 192.168.4.1 affichée sur le moniteur série. Puis via la web socket la couleur voulue est et communiquée à la carte qu'elle envoi au module RGB en PWM.Il faut savoir que la fonction par défaut analogWrite ne fonctionne pas avec l'ESP32. Il faudrait utilisé plutôt ledcWrite.Sachez aussi qu'il faut utiliser des pins du GPIO comme les pins GPIO 25,26 et 27 dans notre exemple.Aussi il faut pas oublier de créer un dossier data là ou votre code arduino est enregistré, et utiliser la librairie SPIFFS pour uploader le fichier index.html

Arduino Uno Pinout

Code Arduino UNO

int rougepin = 11; // select the pin for the rouge LED
int bleupin = 10; // select the pin for the  bleu LED
int vertpin = 9; // select the pin for the vert LED
int rouge, vert, bleu ;
void setup() {
  pinMode(rougepin, OUTPUT);
  pinMode(bleupin, OUTPUT);
  pinMode(vertpin, OUTPUT);
  Serial.begin(9600);
}
void loop() {
  if (Serial.available() > 0)
  {
    String strx = Serial.readStringUntil("\n");
    Serial.print(strx);
    strx.trim();
    String rougeS = strx.substring(1, 4);
    rouge = rougeS.toInt();
    String vertS = strx.substring(5, 8);
    vert = vertS.toInt();
    String bleuS = strx.substring(9, 12);
    bleu = bleuS.toInt();
    analogWrite(rougepin, rouge);
    analogWrite(vertpin, vert);
    analogWrite(bleupin, bleu);
  }
}

Montage

Code processing

 

PImage img;
import processing.serial.*;
Serial myPort;
void setup(){
  size(500, 600);noStroke();
  myPort = new Serial(this, Serial.list()[0], 9600);
}
void draw(){
  background(0);
  img = loadImage("colorWheel.png");
  image(img, 0, 0, 500, 500);
  fill(255);ellipse(250, 250, 50, 50);
  rect(200, 500, 100, 100);fill(255,0,0);
  ellipse(50,475,25,25);fill(0,255,0);
  ellipse(100,475,25,25);fill(0,0,255);
  ellipse(150,475,25,25);fill(255,255,0);
  ellipse(450,475,25,25);fill(255,0,255);
  ellipse(400,475,25,25);fill(0,255,255);
  ellipse(350,475,25,25);
  if (mouseX <=500 && mouseY<=500) 
  {
    cursor(HAND);
    color c = get(mouseX, mouseY);
    if (c!=color(0, 0, 0))
    {
      fill(c);rect(200, 500, 100, 100);
      if(mousePressed == true)
      {
       myPort.write(","+nf(int(red(c)),3)+","+nf(int(green(c)),3)+","+nf(int(blue(c)),3)+"\n");
      }
    }else{ fill(255);rect(200, 500, 100, 100);}
  } else {cursor(ARROW);}}

Interface Processing

Les frais de transport ne sont pas inclus

Composant Quantité Prix(DTN TTC)
Arduino Uno 1 37
Cable connexion femelle femelle (10) 1 1.5
Module RGB Led 1 2
Totale 40.5 DTN TTC

Smart Innovation