5. led Studio v2.4.1 + RGB — Arduino Nano simulation

penambahan mode RGB pada mode warna dan penambahan efek warna RGB

An interactive Arduino Nano circuit simulation you can run free in your browser on Velxio, by aripaintco.

Components

Sketch code

#include <Wire.h>
#include <EEPROM.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>

// =====================================================
// ARISTUDIO - LED STUDIO CONTROLLER
// Arduino Nano + OLED 128x32 + Rotary Encoder
//
// OPERASI BARU:
// - STANDBY: putar rotary langsung mengatur BRIGHTNESS
// - Klik 1x: masuk menu COLOR TEMP
// - COLOR TEMP: putar rotary memilih Kelvin
// - Klik 1x: SET warna + kembali STANDBY
// - Hold 1 detik: ON/OFF lampu dari mode apa pun
// - Brightness: 0-100%
// - Color Temp: 3000-6500K
// - PWM 20 kHz
// - Anti-flicker
// - Soft Start
// - EEPROM
// - RGB: AUTO + PILIHAN EFEK + MANUAL PRESET WARNA
// - V2.4.1
// =====================================================


// =====================================================
// OLED
// =====================================================

#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 32
#define OLED_RESET -1
#define OLED_ADDRESS 0x3C

Adafruit_SSD1306 display(
  SCREEN_WIDTH,
  SCREEN_HEIGHT,
  &Wire,
  OLED_RESET
);


// =====================================================
// PIN ARDUINO NANO
// =====================================================

#define ENCODER_CLK 2
#define ENCODER_DT  3
#define ENCODER_SW  4

#define LED_WARM 9
#define LED_COOL 10

// RGB LED - Arduino Nano PWM pins
#define LED_RED   5
#define LED_GREEN 6
#define LED_BLUE  11


// =====================================================
// PWM 20 kHz
// Arduino Nano ATmega328P
// Timer1 Phase Correct PWM, TOP = 400
// =====================================================

#define PWM_TOP 400


// =====================================================
// MODE UI
// =====================================================

#define MODE_STANDBY    0
#define MODE_COLOR_MENU 1
#define MODE_COLOR_TEMP 2
#define MODE_RGB_MENU   3
#define MODE_RGB_MANUAL 4  // RGB MIXER
#define MODE_RGB_AUTO   5
#define MODE_RGB_EFFECT 6

byte uiMode = MODE_STANDBY;

#define COLOR_MODE_CT  0
#define COLOR_MODE_RGB 1

byte colorMode = COLOR_MODE_CT;
byte selectedColorMode = COLOR_MODE_CT;

int redValue = 255;
int greenValue = 255;
int blueValue = 255;
byte selectedRGB = 0;
byte rgbHue = 0;
byte savedRGBHue = 0;
byte selectedRGBColor = 0;
byte selectedRGBMenu = 0;   // 0=AUTO, 1=EFEK, 2=MANUAL
byte selectedEffect = 0;   // 0=RAINBOW, 1=FADE, 2=PARTY, 3=WIPE, 4=BREATH
byte activeEffect = 0;
unsigned long rgbEffectStart = 0;
bool rgbAuto = false;
bool rgbEffectActive = false;


// =====================================================
// SETTING
// =====================================================

int brightness = 5;
int colorTemp = 4500;
bool lampOn = true;

// Nilai Kelvin sementara saat memilih warna.
// Belum dianggap "set" sampai tombol diklik.
int selectedColorTemp = 4500;


// =====================================================
// EEPROM
// =====================================================

#define EEPROM_BRIGHTNESS 0
#define EEPROM_COLOR      2
#define EEPROM_LAMP       4
#define EEPROM_COLOR_M

More projects by aripaintco