본문 바로가기
HW/Raspberry Pi | Arduino

아두이노 - 틴커캐드 실습

by 코젼 2022. 8. 19.
728x90
반응형

2022-08-19(44일차)



📃 움직이는 물체가 감지되면 LED를 번갈아가면서 켜기

// C++ code
//
void setup()
{
  pinMode(7, INPUT);
  pinMode(11, OUTPUT);
  pinMode(12, OUTPUT);
  pinMode(13, OUTPUT);

}

void loop()
{
  int readVal = digitalRead(7);
  if(readVal == HIGH) {
    digitalWrite(13, HIGH);
    digitalWrite(12, LOW);
    digitalWrite(11, LOW);
    delay(1000);
    
    digitalWrite(13, LOW);
    digitalWrite(12, HIGH);
    digitalWrite(11, LOW);
    delay(1000);
    
    digitalWrite(13, LOW);
    digitalWrite(12, LOW);
    digitalWrite(11, HIGH);
    delay(1000);
  }
  else {
    digitalWrite(13, LOW);
    digitalWrite(12, LOW);
    digitalWrite(11, LOW);
  }
}

📃 분압기 이용

// C++ code
//
void setup()
{
  Serial.begin(9600);
}

void loop()
{
  int readValue = analogRead(A0);
  delay(500);
  Serial.println(readValue);
}

📃 가변저항으로 LED 밝기 조절

20 / 1023

// C++ code
//
void setup()
{
  Serial.begin(9600);
}

void loop()
{
  int readValue = analogRead(A0);
  delay(500);
  Serial.println(readValue);
}

📃 조도센서

▪ 빛이 많으면 전류를 적게 보내고, 빛이 적으면 전류를 많이 보낸다.

조도센서로도 LED의 빛을 조절할 수 있다.


📃 온도 센서

// C++ code
//
void setup()
{
  Serial.begin(9600);
}

void loop()
{
  int readValue = analogRead(A0); // 아날로그 신호를 측정
 
  float volt = readValue * 5.0 / 1023;

  float tempur = volt * 100.0 - 50;
  Serial.println(tempur);
}

📃 가변저항의 값으로 인한 LED 밝기 변경

// C++ code
//
void setup()
{
  Serial.begin(9600);
}

void loop()
{
  int readValue = analogRead(A0);
  
  // map() 함수를 이용해 입력 값의 범위를 변경
  int convertedValue = map(readValue, 0, 1023, 0, 255);
  analogWrite(9, convertedValue);
  
  
  // 시리얼 모니터로 가변저항의 값과 범위 변경된 값을 출력
  Serial.print(readValue);
  Serial.print("\t");
  Serial.println(convertedValue);
}

🙏재범님에게 감사드립니다...


📃 LCD

// C++ code
//


#include <LiquidCrystal.h>

int seconds = 0;

LiquidCrystal lcd_1(12, 11, 5, 4, 3, 2);

void setup()
{
  lcd_1.begin(16, 2); 

  lcd_1.print("ONDO");
}

void loop()
{
  int readValue = analogRead(A0);
  delay(500);
  Serial.println(readValue);
  float volt = readValue * 5.0 /1023;
  float temper = volt * 100.0 - 50;
  
   
  
  
  lcd_1.setCursor(0, 1);
  lcd_1.print(temper);
  delay(1000); 
  seconds += 1;
}

📃 세그먼트 디스플레이

// C++ code
int A = 2;
int B = 3;
int C = 4;
int D = 5;
int E = 6;
int F = 7;
int G = 8;
int DP = 12;


void setup(void)
{
  pinMode(A, OUTPUT);
  pinMode(B, OUTPUT);
  pinMode(C, OUTPUT);
  pinMode(D, OUTPUT);
  pinMode(E, OUTPUT);
  pinMode(F, OUTPUT);
  pinMode(G, OUTPUT);
  pinMode(DP, OUTPUT);
}

//My Functions

void zero(void) {
  digitalWrite(A, LOW);
  digitalWrite(B, LOW);
  digitalWrite(C, LOW);
  digitalWrite(D, LOW);
  digitalWrite(E, LOW);
  digitalWrite(F, LOW);
  digitalWrite(G, HIGH);
  digitalWrite(DP, HIGH);
}

void one(void) {
  digitalWrite(A, HIGH);
  digitalWrite(B, LOW);
  digitalWrite(C, LOW);
  digitalWrite(D, HIGH);
  digitalWrite(E, HIGH);
  digitalWrite(F, HIGH);
  digitalWrite(G, HIGH);
  digitalWrite(DP, HIGH);
}

void two(void) {
  digitalWrite(A, LOW);
  digitalWrite(B, LOW);
  digitalWrite(C, HIGH);
  digitalWrite(D, LOW);
  digitalWrite(E, LOW);
  digitalWrite(F, HIGH);
  digitalWrite(G, LOW);
  digitalWrite(DP, HIGH);
}

void three(void) {
  digitalWrite(A, LOW);
  digitalWrite(B, LOW);
  digitalWrite(C, LOW);
  digitalWrite(D, LOW);
  digitalWrite(E, HIGH);
  digitalWrite(F, HIGH);
  digitalWrite(G, LOW);
  digitalWrite(DP, HIGH);
}

void four(void) {
  digitalWrite(A, HIGH);
  digitalWrite(B, LOW);
  digitalWrite(C, LOW);
  digitalWrite(D, HIGH);
  digitalWrite(E, HIGH);
  digitalWrite(F, LOW);
  digitalWrite(G, LOW);
  digitalWrite(DP, HIGH);
}

void five(void) {
  digitalWrite(A, LOW);
  digitalWrite(B, HIGH);
  digitalWrite(C, LOW);
  digitalWrite(D, LOW);
  digitalWrite(E, HIGH);
  digitalWrite(F, LOW);
  digitalWrite(G, LOW);
  digitalWrite(DP, HIGH);
}

void six(void) {
  digitalWrite(A, LOW);
  digitalWrite(B, HIGH);
  digitalWrite(C, LOW);
  digitalWrite(D, LOW);
  digitalWrite(E, LOW);
  digitalWrite(F, LOW);
  digitalWrite(G, LOW);
  digitalWrite(DP, HIGH);
}

void seven(void) {
  digitalWrite(A, LOW);
  digitalWrite(B, LOW);
  digitalWrite(C, LOW);
  digitalWrite(D, HIGH);
  digitalWrite(E, HIGH);
  digitalWrite(F, LOW);
  digitalWrite(G, HIGH);
  digitalWrite(DP, HIGH);
}

void eight(void) {
  digitalWrite(A, LOW);
  digitalWrite(B, LOW);
  digitalWrite(C, LOW);
  digitalWrite(D, LOW);
  digitalWrite(E, LOW);
  digitalWrite(F, LOW);
  digitalWrite(G, LOW);
  digitalWrite(DP, HIGH);
}

void nine(void) {
  digitalWrite(A, LOW);
  digitalWrite(B, LOW);
  digitalWrite(C, LOW);
  digitalWrite(D, LOW);
  digitalWrite(E, HIGH);
  digitalWrite(F, LOW);
  digitalWrite(G, LOW);
  digitalWrite(DP, HIGH);
}

// Start
void loop(void)
{
  zero();
  delay(1000);
  
  one();
  delay(1000);
  
  two();
  delay(1000);
  
  three();
  delay(1000);
  
  four();
  delay(1000);
  
  five();
  delay(1000);
  
  six();
  delay(1000);
  
  seven();
  delay(1000);
  
  eight();
  delay(1000);
  
  nine();
  delay(1000);
}

📃 초음파센서

// C++ code
//
void setup()
{
  pinMode(7, OUTPUT);
  pinMode(6, OUTPUT);
  pinMode(5, OUTPUT);
  
}

void loop()
{
  //초음파 신호 통신
  pinMode(9, OUTPUT);
  digitalWrite(9, LOW);
  delayMicroseconds(2);
  digitalWrite(9, HIGH);
  delayMicroseconds(5);
  digitalWrite(9, LOW);
  
  //초음파 신호 수신
  pinMode(9,INPUT);
  double duration = pulseIn(9,HIGH);
  double cm = duration * 340/10000/2;
  
  digitalWrite(5,HIGH);
  digitalWrite(6,HIGH);
  digitalWrite(7,HIGH);
  
  //물체의 측정거리에 따라 LED제어
  if(cm < 20){
    digitalWrite(7,HIGH);
    digitalWrite(6,LOW);
    digitalWrite(5,LOW);
  }else if(cm <60){
    digitalWrite(7,LOW);
    digitalWrite(6,HIGH);
    digitalWrite(5,LOW);
  }else{
    digitalWrite(7,LOW);
    digitalWrite(6,LOW);
    digitalWrite(5,HIGH);
  }
  delay(100);
}

 

728x90
반응형

댓글