Arduino Spectrum Slider: 3 Langkah

Arduino Spectrum Slider: 3 Langkah

Isi kandungan:

Anonim

Gunakan potensiometer untuk menunjukkan tatal melalui spektrum yang kelihatan

Bekalan:

Langkah 1: Bahagian

Arduino uno

Kabel panjang jumper biru 1x

Kabel panjang jumper merah 1x

Kabel jumper hitam 2x pendek

1x setiap kabel jumper RGB

Warna Tri yang dipimpin

Potentiometer

Semua boleh didapati dalam kit sidekick

Langkah 2: Skema

Kawat seperti ditunjukkan dalam gambar. jika diketuai mempunyai katod biasa dan bukan anod bersambung ke tanah, bukan 5v.

Langkah 3: Kod

Salin dan tampal. Jika katod biasa sebagai nilai RGB kepada 0 dan bukannya tolak.

int rPin = 11;

int gPin = 10; int bPin = 9; float rPinBrightness; float gPinBrightness; float bPinBrightness; nilai terapung; float mval; terapung Merah; terapung Hijau; terapung biru; faktor terapung; void setup () {// put your setup code here, to run once:

}

kekosongan warna () {mval = analogRead (A1); nilai = peta (mval, 0, 1023, 380, 650);

jika ((nilai> = 380) && (nilai <440)) {Merah = - (nilai - 440) / (440 - 380); Hijau = 0,0; Biru = 1.0; } else if ((value> = 440) && (value <490)) {Red = 0.0; Hijau = (nilai - 440) / (490 - 440); Biru = 1.0; } else if ((value> = 490) && (value <510)) {Red = 0.0; Hijau = 1.0; Biru = - (nilai - 510) / (510 - 490); } else if ((value> = 510) && (value <580)) {Red = (value - 510) / (580 - 510); Hijau = 1.0; Biru = 0.0; } else if ((value> = 580) && (value <645)) {Red = 1.0; Hijau = - (nilai - 645) / (645 - 580); Biru = 0.0; } else if ((value> = 645) && (value <781)) {Red = 1.0; Hijau = 0,0; Biru = 0.0; } else {Red = 0.0; Hijau = 0,0; Biru = 0.0; }; jika ((nilai> = 380) && (nilai <420)) {factor = 0.3 + 0.7 * (nilai - 380) / (420-380); } else if ((value> = 420) && (value <701)) {factor = 1.0; } else if ((value> = 701) && (value <781)) {factor = 0.3 + 0.7 * (780 - value) / (780 - 700); } else {factor = 0.0; };

}

kekosongan gelung () {// masukkan kod utama anda di sini, untuk berjalan berulang: warna (); analogWrite (rPin, 255 - Red * 100 * factor); analogWrite (gPin, 255 - Hijau * 100 * faktor); analogWrite (bPin, 255 - Blue * 100 * factor); kelewatan (10); }