Logo

RGB Color Picker z Arduinom Nano in tremi potenciometri

Vezava komponent

V tem projektu uporabljamo klasičen Arduino Nano za branje analognih vrednosti iz treh potenciometrov. Vsak potenciometer predstavlja eno barvno komponento: Rdečo (R), Zeleno (G) in Modro (B). Rezultat mešanja se v realnem času prikaže na 2.0" TFT LCD zaslonu.

Povezave (Nano → TFT & Potenciometri):

TFT LCD zaslon (SPI):

  1. VCC → 5V
  2. GND → GND
  3. SCK → D13
  4. MOSI → D11
  5. CS → D10
  6. RESET → D9
  7. DC → D8

Potenciometri (Sredinska nogica):

  1. Rdeča (R) → A0
  2. Zelena (G) → A1
  3. Modra (B) → A2
  4. (Stranski nogici vseh treh gredo na 5V in GND)

Arduino koda

Za delovanje potrebujete knjižnici Adafruit GFX in Adafruit ILI9341, ki ju namestite preko Library Manager. Koda bere analogne vhode in jih pretvori v barvni format za zaslon.

// Projekt: Arduino Nano RGB Color Picker s TFT zaslonom
// Avtor: Borut Bukovnik - vadnica.org

#include <SPI.h>
#include <Adafruit_GFX.h>
#include <Adafruit_ILI9341.h>

#define TFT_CS 10
#define TFT_DC 8
#define TFT_RST 9

Adafruit_ILI9341 tft = Adafruit_ILI9341(TFT_CS, TFT_DC, TFT_RST);

const int pinR = A0;
const int pinG = A1; 
const int pinB = A2;

void setup() {
  tft.begin();
  tft.setRotation(2); 
  tft.fillScreen(ILI9341_BLACK);
  tft.invertDisplay(true);
  
  tft.setCursor(50, 10);
  tft.setTextColor(ILI9341_WHITE, ILI9341_BLACK);
  tft.setTextSize(2);
  tft.print("COLOR PICKER");
}

void loop() {
  int vR = analogRead(pinR);
  int vG = analogRead(pinG);
  int vB = analogRead(pinB);

  uint8_t r = map(vR, 0, 1023, 0, 255);
  uint8_t g = map(vG, 0, 1023, 0, 255);
  uint8_t b = map(vB, 0, 1023, 0, 255);
  
  uint16_t barva = tft.color565(r, g, b);

  tft.fillRect(60, 40, 120, 120, barva);

  char buffer[40];
  sprintf(buffer, "R:%3d G:%3d B:%3d", r, g, b);
  
  tft.setCursor(20, 180);
  tft.setTextColor(ILI9341_WHITE, ILI9341_BLACK); 
  tft.setTextSize(2);
  tft.print(buffer);

  sprintf(buffer, "HEX: 0x%04X ", barva);
  tft.setCursor(65, 210);
  tft.setTextColor(ILI9341_YELLOW, ILI9341_BLACK);
  tft.print(buffer);

  delay(50);
}
Color Picker z Arduinom Nano

Potreben material

  1. Arduino Nano R3: Kompakten mikrokrmilnik.
  2. TFT LCD SPI 2.0": Barvni zaslon z ločljivostjo 240x320.
  3. 3x Potenciometer 10k: Za krmiljenje barvnih kanalov.
  4. Protoboard: Za hitro vezavo brez spajkanja.

Hvala za obisk! Dodajam politiko zasebnosti.

© 2024 Vse pravice pridržane.

Vam je koda pomagala? Če želite podpreti moj trud pri pripravi vodičev in vzdrževanju strani, mi lahko namenite donacijo za kavo.