회로구성하기
- 저항 330Ω (옴), LED 5개연결
LED가 위에서 아래로 깜빡이기
int delayTime = 500;
int ledArr[5] = {12,11,10,9,8};
void setup()
{
for(int i=0; i<5; i++){
pinMode(ledArr[i],OUTPUT);
}
}
void loop()
{
for(int i=0; i<5; i++){
blinkLed(ledArr[i]);
}
}
void blinkLed(int pinNum)
{
digitalWrite(pinNum, HIGH);
delay(delayTime);
digitalWrite(pinNum, LOW);
delay(delayTime);
}
아래에서위로 깜빡이기
int delayTime = 500;
int ledArr[5] = {8,9,10,11,12};
void setup()
{
for(int i=0; i<5; i++)
pinMode(ledArr[i],OUTPUT);
}
void loop()
{
for(int i=0; i<5; i++){
blinkLed(ledArr[i]);
}
}
void blinkLed(int pinNum)
{
digitalWrite(pinNum, HIGH);
delay(delayTime);
digitalWrite(pinNum, LOW);
delay(delayTime);
}
버튼누르면 LED 켜지기
int flag = 0;
int ledCount=0;
int buttonPin=6;
int delayTime = 500;
int ledArr[5] = {12,11,10,9,8};
void setup()
{
for(int i=0; i<5; i++){
pinMode(ledArr[i],OUTPUT);
}
pinMode(buttonPin, INPUT);
}
void loop()
{
int inputValue = digitalRead(buttonPin);
if (inputValue == HIGH) {
if (flag == 0){
flag = 1;
if(ledCount == 6)
ledCount = 0;
//blinkLed(ledArr[ledCount]);
weightedLEDOn(ledCount);
ledCount++;
}
}
else {
if (flag == 1) {
flag = 0;
}
}
delay(100);
}
void blinkLed(int pinNum)
{
digitalWrite(pinNum, HIGH);
delay(delayTime);
digitalWrite(pinNum, LOW);
delay(delayTime);
}
void weightedLEDOn(int Count){
if(Count == 5){
for(int i=0; i<5; i++){
digitalWrite(ledArr[i],LOW);
}
}
else{
for(int i=0; i<=Count; i++){
digitalWrite(ledArr[i],HIGH);
}
}
}
조도 센서사용하기
int photoPin=A0;
int delayTime = 500;
int ledArr[5] = {12,11,10,9,8};
void setup()
{
for(int i=0; i<5; i++){
pinMode(ledArr[i],OUTPUT);
}
pinMode(photoPin, INPUT);
}
void loop()
{
int inputValue = analogRead(photoPin);
int ledCount = inputValue / 172;
weightedLEDOn(ledCount);
delay(100);
}
void weightedLEDOn(int Count){
if (Count > 5){
Count = 5;
}
for(int i=Count; i<5; i++){
digitalWrite(ledArr[i],LOW);
}
for(int i=0; i<Count; i++){
digitalWrite(ledArr[i],HIGH);
}
}
어두워지면 LED가 다 켜지는 코드
int photoPin=A0;
int delayTime = 500;
int ledArr[5] = {12,11,10,9,8};
void setup()
{
for(int i=0; i<5; i++){
pinMode(ledArr[i],OUTPUT);
}
pinMode(photoPin, INPUT);
}
void loop()
{
int inputValue = analogRead(photoPin);
int ledCount = (1023-inputValue) / 172;
weightedLEDOn(ledCount);
delay(100);
}
void weightedLEDOn(int Count){
if (Count > 5){
Count = 5;
}
for(int i=Count; i<5; i++){
digitalWrite(ledArr[i],LOW);
}
for(int i=0; i<Count; i++){
digitalWrite(ledArr[i],HIGH);
}
}
어두워지면 다켜지는 코드 - 2 (min max 적응형)
int photoPin=A0;
int delayTime = 500;
int ledArr[5] = {12,11,10,9,8};
int min = 512;
int max = 512;
void setup()
{
for(int i=0; i<5; i++){
pinMode(ledArr[i],OUTPUT);
}
pinMode(photoPin, INPUT);
Serial.begin(9600);
}
void loop()
{
int inputValue = analogRead(photoPin);
min = inputValue < min ? inputValue : min;
max = inputValue > max ? inputValue : max;
int ledCount = inputValue * 5 / (max-min);
Serial.print(1023-inputValue);
Serial.print(" ");
Serial.println(ledCount);
weightedLEDOn(5-ledCount);
delay(100);
}
void weightedLEDOn(int Count){
if (Count > 5){
Count = 5;
}
for(int i=Count; i<5; i++){
digitalWrite(ledArr[i],LOW);
}
for(int i=0; i<Count; i++){
digitalWrite(ledArr[i],HIGH);
}
}
'Embedded > Arduino' 카테고리의 다른 글
LilyPad - basic (0) | 2021.06.10 |
---|---|
RGB LED (0) | 2021.06.10 |
MultiTasking with Arduino (0) | 2021.06.09 |
예제 (0) | 2021.06.09 |
02. Tinkercad 시작하기 (0) | 2021.06.09 |