#include <Arduino.h>
#include <Servo.h>
Servo myServo;
const byte servo_pin = 9;
const byte pot = A0;
const byte Rled = 13;
const byte Bled = 12;
const byte Gled = 11;
const byte sw = 2;
int redv = 0;
int greenv = 0;
int bluev = 0;
int value = 0;
bool ledState = HIGH;
bool buttonstate;
bool lastbuttonstate = LOW;
unsigned long lastdebouncetime = 0;
const byte debouncedelay = 50;
int rotate = 0;
void setup()
{
Serial.begin(9600);
pinMode(Rled, OUTPUT);
pinMode(Bled, OUTPUT);
pinMode(Gled, OUTPUT);
pinMode(sw, INPUT);
myServo.attach(9);
}
void loop()
{
int reading = digitalRead(sw);
if (reading != lastbuttonstate)
{
lastdebouncetime = millis();
}
if ((millis() - lastdebouncetime) > debouncedelay)
{
if (reading != buttonstate)
{
buttonstate = reading;
if (buttonstate == HIGH)
{
rotate = random(3) * 90;
int randomA = random(3);
myServo.write(rotate);
Serial.print("Current angle is : ");
Serial.println(rotate);
}
}
}
lastbuttonstate = reading;
int val = analogRead(pot) / 4;
int changevalue = map(val, 0, 1023, 0, 255);
// analogWrite(Rled, changevalue); //문제 코드
// analogWrite(Gled, changevalue); //문제 코드
// analogWrite(Bled, changevalue); //문제 코드
changeled(rotate); // 위치 변경 , 왜 변경했는지 고민
}
void rgbcolor(int red, int green, int blue)
{
redv = red;
greenv = green;
bluev = blue;
digitalWrite(Rled, redv);
digitalWrite(Gled, greenv);
digitalWrite(Bled, bluev);
}
void changeled(int ran)
{
switch (ran)
{
case 0 ... 89:
rgbcolor(255, 0, 0);
break;
case 90 ... 179:
rgbcolor(0, 255, 0);
break;
case 180:
rgbcolor(0, 0, 255);
break;
}
}