아두이노 자기 유지 - adu-ino jagi yuji

센서와 모터 등 제어

2 Push Button, 1 LED 제어하기

버튼과 LED로 제어한 것이라서

단순하게 보이고, 재미도 없을듯 하지만

나중에  

LED를 모터와 같은 Actuator 등으로 교체한다면

좀 더 흥미로운 프로젝트를 구상해볼 수 있을 것이다.

그렇게 하기 위한 기초로, 잘 수행한다면 좋은 결과를 기대할 수 있을 것이다.

2 Push Button과 한 개의 LED로 아래 3가지 제어를 구현했다.

1. [ 양수 조작 스위치] 제어 : 프레스 기계 안전 장치로 사용

2. [ 자기 유지 회로 스위치] 제어 : PLC 에서 사용 빈도가 가장 높은 기본 회로

3. [ 3로 스위치] 제어 : 복도 전등 구성을 위한 회로(전기 기능사)

- 참고사이트

https://www.youtube.com/watch?v=7_PfxZMLP6o

아두이노 자기 유지 - adu-ino jagi yuji

https://www.youtube.com/watch?v=hVeKy3B7oZ4

아두이노 자기 유지 - adu-ino jagi yuji

2 Push Button, 1 LED

1. Wiring

2. [ 2 Button 프레스 양수 조작] 

​[작동] Button1, Button2를 동시에 누르면 LEDON이 된다.

- Coding

const int button1 = 7;
const int button2 = 10;
const int led = 8;
int buttonState1 = 0;
int buttonState2 = 0;


void setup() {
  Serial.begin(9600);
  pinMode(button1,INPUT_PULLUP);
  pinMode(button2,INPUT_PULLUP);
  pinMode(led,OUTPUT); }


void loop() {
  Serial.print("buttonState1 = ");
  Serial.print(buttonState1);
  Serial.print("|  buttonState2 = ");
  Serial.println(buttonState2);
  buttonState1 = digitalRead(button1);
  buttonState2 = digitalRead(button2);
  if (buttonState1 == HIGH && buttonState2 == HIGH) { digitalWrite(led,LOW); }
  if (buttonState1 == LOW && buttonState2 == LOW) { digitalWrite(led,HIGH); }
  else { digitalWrite(led,LOW); }
}

3.[ 2 Button 자기 유지] 

[작동]  Button1을 누르면 LED가 ON상태로 유지되고,  

           Button2를 누르면 LED가 OFF상태를 유지된다.

- Coding

const int Toggle_button1 = 7;
const int Toggle_button2 = 10;
const int led = 8;
boolean Toggle_buttonState1 = false;
boolean Toggle_buttonState2 = false;


void setup() {
  Serial.begin(9600);
  pinMode(Toggle_button1,INPUT_PULLUP);
  pinMode(Toggle_button2,INPUT_PULLUP);
  pinMode(led,OUTPUT); }


void loop() {
  Serial.print("led = ");
  Serial.println(digitalRead(led));
  Serial.print("|  Toggle_buttonState1 = ");
  Serial.println(Toggle_buttonState1);


  if (digitalRead(Toggle_button1)==LOW && !Toggle_buttonState1) {
      digitalWrite(led,HIGH);
      Toggle_buttonState1 = true; }
  if (digitalRead(Toggle_button2)==LOW && Toggle_buttonState1) {
      digitalWrite(led,LOW);
      Toggle_buttonState1 = false; }
}

4.[ 2 Button 3로 스위치] 

[작동]  

 - Button1을 누르면 LED가 ON상태로 유지되고, 

                                            Button1을 누르면 LED가 OFF상태로 유지된다.

 - Button2를 누르면 LED가 ON상태로 유지되고, 

                                            Button2을 누르면 LED가 OFF상태로 유지된다.

 - Button1을 누르면 LED가 ON상태로 유지되고, 

                                            Button2을 누르면 LED가 OFF상태로 유지된다.

- Button2를 누르면 LED가 ON상태로 유지되고, 

                                            Button1을 누르면 LED가 OFF상태로 유지된다.​​      

- Coding


const int Toggle_button1 = 7;
const int Toggle_button2 = 10;
const int led = 8;
boolean Toggle_buttonState1 = false;
boolean Toggle_buttonState2 = false;


void setup() {
  Serial.begin(9600);
  pinMode(Toggle_button1,INPUT_PULLUP);
  pinMode(Toggle_button2,INPUT_PULLUP);
  pinMode(led,OUTPUT); }


void loop() {
  Serial.print("led = ");
  Serial.println(digitalRead(led));
  Serial.print("|  Toggle_buttonState1 = ");
  Serial.print(Toggle_buttonState1);
  Serial.print("|  Toggle_buttonState2 = ");
  Serial.println(Toggle_buttonState2);
  delay(200);

 
  if (digitalRead(led)==LOW && digitalRead(Toggle_button1)==LOW) {
      digitalWrite(led,HIGH);
      Toggle_buttonState1 = true; }   


  else if (digitalRead(led)==LOW && digitalRead(Toggle_button2)==LOW) {
      digitalWrite(led,HIGH);
      Toggle_buttonState2 = true; }   


  else if (digitalRead(led)==HIGH && digitalRead(Toggle_button1)==LOW) {
        digitalWrite(led,LOW);
        Toggle_buttonState1 = false;
        Toggle_buttonState2 = false; }


  else if (digitalRead(led)==HIGH && digitalRead(Toggle_button2)==LOW) {
        digitalWrite(led,LOW);
        Toggle_buttonState1 = false;
        Toggle_buttonState2 = false; }
}