вы должны предоставить некоторую задержку после установки RGB_COLOR
, потому что код выполняется быстро, и вы не видите изменения, добавьте функцию delay
, она будет меняться медленнее
void loop() {
for(int i = 0; i < 256; i++){
for(int j = 0; j < 256; j++){
for(int k = 0; k < 256; k++){
// sending data to pc
Serial.print("\ti= ");Serial.print(i);
Serial.print("\tj= ");Serial.print(j);
Serial.print("\tk= ");Serial.println(k);
// change the data
RGB_COLOR(i,j,k);
delay(100); // wait for 100 ms
}
}
}
}
обновление:
вы должны подключить контакты к штырю PWM ... если вы используете arduino uno, он будет (10,11,6,5,3) и измените соединение
int RGB_R = 10,
RGB_G = 11,
RGB_B = 6;
полный код
подключите контакты на (10,11,6) ... потому что analogWrite корректно работает только с выводами pwm
int RGB_R = 10,
RGB_G = 11,
RGB_B = 6;
void setup() {
pinMode(RGB_R, OUTPUT);
pinMode(RGB_G, OUTPUT);
pinMode(RGB_B, OUTPUT);
Serial.begin(9600);
}
void loop() {
for(int i = 0; i < 256; i++){
for(int j = 0; j < 256; j++){
for(int k = 0; k < 256; k++){
// sending data to pc
Serial.print("\ti= ");Serial.print(i);
Serial.print("\tj= ");Serial.print(j);
Serial.print("\tk= ");Serial.println(k);
// change the data
RGB_COLOR(i,j,k);
delay(100); // wait for 100 ms
}
}
}
}
void RGB_COLOR(int R, int G, int B){
analogWrite(RGB_R, R);
analogWrite(RGB_G, G);
analogWrite(RGB_B, B);
}