void setup()
{
pinMode(10, OUTPUT);
}
void loop()
{
digitalWrite(10, HIGH);
delay(200); //켜져있는 시간
digitalWrite(10, LOW);
delay(200); //꺼져있는 시간
}
브레드 보드를 사용하여 회로 수정
LED 3개 동시에 깜빡이기
void setup()
{
pinMode(10, OUTPUT);
pinMode(9, OUTPUT);
pinMode(8, OUTPUT);
}
void loop()
{
digitalWrite(10, HIGH);
digitalWrite(9, HIGH);
digitalWrite(8, HIGH);
delay(200); //켜져있는 시간
digitalWrite(10, LOW);
digitalWrite(9, LOW);
digitalWrite(8, LOW);
delay(200); //꺼져있는 시간
}
번갈아가며 깜빡이기
void setup()
{
pinMode(10, OUTPUT);
pinMode(9, OUTPUT);
pinMode(8, OUTPUT);
}
void loop()
{
//10번 깜빡이기
digitalWrite(10, HIGH);
delay(200); //켜져있는 시간
digitalWrite(10, LOW);
delay(200); //꺼져있는 시간
//9번 깜빡이기
digitalWrite(9, HIGH);
delay(200); //켜져있는 시간
digitalWrite(9, LOW);
delay(200); //꺼져있는 시간
//8번 깜빡이기
digitalWrite(8, HIGH);
delay(200); //켜져있는 시간
digitalWrite(8, LOW);
delay(200); //꺼져있는 시간
}
배열을 사용하여 LED 코드 간편하게 수정
int ledArr[] = {10,9,8}; // LED번호만 추가하면 번갈아 깜빡임
int ledSize = sizeof(ledArr) / sizeof(ledArr[0]);
int onTime = 200;
int offTime = 200;
void setup()
{
for(int i=0; i<ledSize; i++){
pinMode(ledArr[i], OUTPUT);
}
}
void loop()
{
for(int i=0; i<ledSize; i++){
digitalWrite(ledArr[i], HIGH);
delay(onTime); //켜져있는 시간
digitalWrite(ledArr[i], LOW);
delay(offTime); //꺼져있는 시간
}
}
한꺼번에 깜빡이기
int ledArr[] = {10,9,8}; // LED번호만 추가하면 한꺼번에 깜빡임
int ledSize = sizeof(ledArr) / sizeof(ledArr[0]);
int onTime = 200;
int offTime = 200;
void setup()
{
for(int i=0; i<ledSize; i++){
pinMode(ledArr[i], OUTPUT);
}
}
void loop()
{
for(int i=0; i<ledSize; i++){
digitalWrite(ledArr[i], HIGH);
}
delay(onTime); //켜져있는 시간
for(int i=0; i<ledSize; i++){
digitalWrite(ledArr[i], LOW);
}
delay(offTime); //꺼져있는 시간
}
아날로그 출력
3개의 LED가 동시에 FADE
int ledArr[] = {11,10,9}; // LED번호만 추가하면 한꺼번에 깜빡임
int ledSize = sizeof(ledArr) / sizeof(ledArr[0]);
int onTime = 200;
int offTime = 200;
void setup()
{
for(int i=0; i<ledSize; i++){
pinMode(ledArr[i], OUTPUT);
}
}
void loop()
{
for(int brightness=0; brightness<=255; brightness+=5){
for(int i=0; i<ledSize; i++){
analogWrite(ledArr[i], brightness);
}
delay(30);
}
for(int brightness=255; brightness>=0; brightness-=5){
for(int i=0; i<ledSize; i++){
analogWrite(ledArr[i], brightness);
}
delay(30);
}
}
번갈아가며 Fade(밝아졌다 어두워졌다)하기
int ledArr[] = {11,10,9}; // LED번호만 추가하면 번갈아가며 FADE
int ledSize = sizeof(ledArr) / sizeof(ledArr[0]);
int fadeDelay = 20;
void setup()
{
for(int i=0; i<ledSize; i++){
pinMode(ledArr[i], OUTPUT);
}
}
void led_fade(int ledPin)
{
for(int brightness=0; brightness<=255; brightness+=5){
analogWrite(ledPin, brightness);
delay(fadeDelay);
}
for(int brightness=255; brightness>=0; brightness-=5){
analogWrite(ledPin, brightness);
delay(fadeDelay);
}
}
void loop()
{
for(int i=0; i<ledSize; i++){
led_fade(ledArr[i]);
}
}
푸시버튼 사용하기
버튼을 누르면 전체 LED가 켜졌다가 꺼졌다가 반복
int ledArr[] = {11,10,9};
int ledSize = sizeof(ledArr) / sizeof(ledArr[0]);
int buttonPin=2;
int ledCount=0;
int flag = 0;
void setup()
{
for(int i=0; i<ledSize; i++){
pinMode(ledArr[i], OUTPUT);
}
pinMode(buttonPin, INPUT);
}
void ledBlink(int state)
{
if(state%2 == LOW){
for(int i=0; i<ledSize; i++){
digitalWrite(ledArr[i], LOW);
}
}
else{
for(int i=0; i<ledSize; i++){
digitalWrite(ledArr[i], HIGH);
}
}
}
void loop()
{
int inputValue = digitalRead(buttonPin);
if (inputValue == HIGH) {
if (flag == 0){
flag = 1;
ledCount++;
ledBlink(ledCount);
}
}
else {
if (flag == 1) {
flag = 0;
}
}
delay(100);
}
버튼을 누르면 번갈아 깜빡임
int ledArr[] = {11,10,9};
int ledSize = sizeof(ledArr) / sizeof(ledArr[0]);
int buttonPin=2;
int ledCount=0;
int flag = 0;
void setup()
{
for(int i=0; i<ledSize; i++){
pinMode(ledArr[i], OUTPUT);
}
pinMode(buttonPin, INPUT);
}
void ledOn(int pinNum)
{
for(int i=0; i<ledSize; i++){
if(ledArr[i] == pinNum)
digitalWrite(ledArr[i], HIGH);
else
digitalWrite(ledArr[i], LOW);
}
}
void loop()
{
int inputValue = digitalRead(buttonPin);
if (inputValue == HIGH) {
if (flag == 0){
flag = 1;
int ledNum = ledCount % ledSize;
ledOn(ledArr[ledNum]);
ledCount++;
}
}
else {
if (flag == 1) {
flag = 0;
}
}
delay(100);
}
2가지의 LED가 번갈아 가며 깜빡임 (ledArr1과 ledArr2를 수정하면 개수를 늘릴수 있음)
//이번코드의 경우 ledArr1의 LED와 ledArr2의 LED가 번갈아가며 켜짐
int ledArr1[] = {11,9};
int ledArr2[] = {10};
int ledSize1 = sizeof(ledArr1) / sizeof(ledArr1[0]);
int ledSize2 = sizeof(ledArr2) / sizeof(ledArr2[0]);
int buttonPin=2;
int ledCount=0;
int flag = 0;
void setup()
{
for(int i=0; i<ledSize1; i++){
pinMode(ledArr1[i], OUTPUT);
}
for(int i=0; i<ledSize2; i++){
pinMode(ledArr2[i], OUTPUT);
}
pinMode(buttonPin, INPUT);
}
void ledChange(int count)
{
if(count%2 == LOW){
for(int i=0; i<ledSize1; i++){
digitalWrite(ledArr1[i], HIGH);
}
for(int i=0; i<ledSize2; i++){
digitalWrite(ledArr2[i], LOW);
}
}
else{
for(int i=0; i<ledSize1; i++){
digitalWrite(ledArr1[i], LOW);
}
for(int i=0; i<ledSize2; i++){
digitalWrite(ledArr2[i], HIGH);
}
}
}
void loop()
{
int inputValue = digitalRead(buttonPin);
if (inputValue == HIGH) {
if (flag == 0){
flag = 1;
ledChange(ledCount);
ledCount++;
}
}
else {
if (flag == 1) {
flag = 0;
}
}
delay(100);
}
'Embedded > Arduino' 카테고리의 다른 글
Arduino-v211020 (0) | 2021.10.20 |
---|---|
Arduino-v211019 (0) | 2021.10.19 |
LilyPad - 0719 (0) | 2021.07.19 |
LilyPad - Final (0) | 2021.07.15 |
LilyPad - Buzzer Test (0) | 2021.07.15 |