반응형
SMALL

안녕하세요! Choi GPT 입니다.

오늘은 아두이노 온라인 시뮬레이션 사이트를 활용해서 LED라는 부품을 제어해보려 합니다.

https://www.tinkercad.com/joinclass/VGIIGN8W6

 

Classroom login - Tinkercad

 

www.tinkercad.com

아래 화면에서 별칭으로 참여 클릭

별칭 : 대덕중(번호)

입력 후 본인입니다 클릭


아래 화면에 접속되면 성공적으로 로그인이 되었습니다.


참고 링크(아두이노 사이트)

Software | Arduino

 

Software

Open-source electronic prototyping platform enabling users to create interactive electronic objects.

www.arduino.cc

 


참고 링크(생성형 인공지능 사이트)

뤼튼 (wrtn.ai)

 

뤼튼

당신의 첫 AI 에이전트 뤼튼. AI 검색부터 나만의 AI 캐릭터까지, AI의 끝없는 가능성을 탐험해 보세요.

wrtn.ai

 


사합니다.

 

 

반응형
LIST
반응형
SMALL

안녕하세요! Choi GPT 입니다.

이번 시간에 알아볼 내용은 RGB LED 모듈에 대해 설명하겠습니다.

출처 : https://arduinomodules.info/ky-016-rgb-full-color-led-module


KY-016 RGB LED 모듈은 빨강, 초록, 파랑 세 가지 색상의 LED를 포함하고 있으며, 

각 LED의 밝기를 독립적으로 제어할 수 있습니다.

이를 통해 다양한 색상을 생성할 수 있습니다.


핀 구성은 다음과 같습니다.

핀맵 정보 핀맵 설명
R (Red) 빨간색 LED의 핀
G (Green) 초록색 LED의 핀
B (Blue) 파란색 LED의 핀
GND 공통 접지 핀

다음은 아두이노와 RGB LED의 연결방법은 다음과 같습니다.


기본예제소스는 아래를 참고 바랍니다.(각각 색상별 제어 및 기타 색상-임의의 색상 제어)

int redPin = 9;    // 빨간색 LED 핀
int greenPin = 10; // 초록색 LED 핀
int bluePin = 11;  // 파란색 LED 핀

void setup() {
  pinMode(redPin, OUTPUT);
  pinMode(greenPin, OUTPUT);
  pinMode(bluePin, OUTPUT);
}

void loop() {
  // 빨간색
  analogWrite(redPin, 255);
  analogWrite(greenPin, 0);
  analogWrite(bluePin, 0);
  delay(1000);
  
  // 초록색
  analogWrite(redPin, 0);
  analogWrite(greenPin, 255);
  analogWrite(bluePin, 0);
  delay(1000);
  
  // 파란색
  analogWrite(redPin, 0);
  analogWrite(greenPin, 0);
  analogWrite(bluePin, 255);
  delay(1000);
  
  // 기타 색상 예제
  analogWrite(redPin, 255);
  analogWrite(greenPin, 255);
  analogWrite(bluePin, 0);
  delay(1000);
}


추가 색상에 대한 PWM 신호값은 윈도우 기본 프로그램인 "그림판" 실행 후
오른쪽 상단 "색 편집" 클릭

 


원하는 색상을 선택 후 해당 색상에 대한

빨강 / 녹색 / 파랑을 확인 후

소스를 해당 값으로 수정하면 지정된 색이 표현 됩니다.


감사합니다.

 

반응형
LIST
반응형
SMALL

안녕하세요! Choi GPT 입니다.

이번 시간에는 아두이노 기초과정 중 디지털 입력에 대해 설명드리고자 합니다.

아두이노에서 디지털 입력(Digital Input)이라 함은,

아두이노 보드의 디지털 핀을 통해
외부 신호의 디지털 값(HIGH or LOW)을 읽어들이는 것을 말합니다.

주로 스위치, 센서와 같은 입력 장치의 신호를 읽어오는 데 사용합니다.


다음 예제파일을 테스트 해보도록 하겠습니다.

먼저 하드웨어 연결에 대한 정보 입니다.

장치 아두이노 핀맵
스위치 D7
LED D13
(내장 LED 사용-따로 연결하지 않음)


다음으로 동작 소스 입니다.

const int switchPin = 7; // 스위치 연결핀 
const int ledPin = 13; // LED 연결핀

void setup() {
  pinMode(switchPin, INPUT); // 스위치핀을 입력으로 
  pinMode(ledPin, OUTPUT); // LED핀을 출력으로
  Serial.begin(9600);
}

void loop() {
  int switchState = digitalRead(switchPin); // 스위치핀 읽기
  Serial.println(switchState);
  if (switchState == HIGH) {  
    digitalWrite(ledPin, HIGH); // 스위치 ON시 LED 켜기 
  }
  else {
    digitalWrite(ledPin, LOW); // 스위치 OFF시 LED 끄기
  }
}

 

digitalRead() 명령어의 정의
https://www.arduino.cc/reference/en/language/functions/digital-io/digitalread/
 

digitalRead() - Arduino Reference

Description Reads the value from a specified digital pin, either HIGH or LOW. Syntax Parameters pin: the Arduino pin number you want to read Returns

www.arduino.cc

 

위의 함수는 아두이노에서 디지털 핀의 입력값을 설정하는 함수입니다.

val = digitalRead(핀번호);
  • val: 읽어온 입력값이 저장되는 변수
  • 핀번호: 입력값을 읽어올 디지털 입력핀 번호

보통의 아두이노의 입력 카테고리(디지털, 아날로그)는 변수를 생성해 읽어드린 값을 저장해 줍니다. 

또한, digitalRead() 함수는 지정한 디지털 입력핀의 값을 읽어옵니다.
읽어온 입력값은 HIGH(1) 또는 LOW(0) 두 가지 중 하나의 값입니다.
입력핀은 앞서 pinMode() 함수를 사용하여 입력모드로 설정되어 있어야합니다.


위에 제공한 예시 소스를 구성하고 업로드 후에 동작사항을 확인해 보세요.

내장 LED (LED_BUILTIN) 에 불이 들어오나요?

정상동작이 되지 않습니다. 이유는 바로 스위치의 특성 때문인데요.

채터링 [chattering] 특성 파형

채터링 [chattering]

스위치의 하드웨어 특성 중 하나인 채터링은 스위치를 눌렀을 때 스위치 연결 핀에
불안정한 신호가 발생하는 현상을 의미합니다.
이 채터링 현상은 스위치의 접촉이 닫히는 과정에서 발생할 수 있으며,
짧은 시간 동안 스위치 연결 핀이 빠르게 ON과 OFF를 반복하여 신호를 보낼 수 있습니다.


그럼 이러한 현상을 해결할 수 있는 방법은 무엇이 있을까요?

크게 2가지가 있습니다.

1. 디바운스[debounce] : 짧은 시간에 여러번 스위치의 상태를 확인하는 방법을 의미합니다.
2. 하드웨어 혹은 소프트웨어의 풀업[PULLUP] & 풀다운[PULLDOWN] 셋팅


우선 디바운스 설정 방법 입니다.

아두이노 스케치 프로그램에서
파일 -> 예제 -> 02.Digital -> Debounce 선택하시면 됩니다.

const int buttonPin = 2;      // 버튼 핀 번호
const int ledPin = 13;        // LED 핀 번호

boolean ledState = HIGH;      // 현재 LED 상태를 초기 설정합니다. (켜진 상태)
boolean buttonState;          // 현재 버튼 상태를 저장합니다. (기본적으로 LOW)
boolean lastButtonState = LOW;// 이전 버튼 상태를 저장합니다.

unsigned long lastDebounceTime = 0; // 버튼 디바운스를 위한 시간 변수
unsigned long debounceDelay = 50;   // 디바운스 지연 시간 (50ms)

void setup() {
  pinMode(buttonPin, INPUT);   // 버튼 핀을 입력으로 설정합니다.
  pinMode(ledPin, OUTPUT);     // LED 핀을 출력으로 설정합니다.

  digitalWrite(ledPin, ledState);  // 초기 LED 상태를 설정합니다. (켜진 상태)
}

void loop() {
  int reading = digitalRead(buttonPin);  // 버튼 핀의 상태를 읽어옵니다.

  if (reading != lastButtonState) {  // 버튼 상태가 이전 상태와 다를 경우
    lastDebounceTime = millis();     // 현재 시간을 기록합니다.
  }

  if ((millis() - lastDebounceTime) > debounceDelay) {  // 디바운스 지연 시간이 경과한 경우
    if (reading != buttonState) {   // 버튼 상태가 이전 상태와 다를 경우
      buttonState = reading;        // 버튼 상태를 업데이트합니다.

      if (buttonState == HIGH) {    // 버튼이 눌린 상태일 경우
        ledState = !ledState;       // LED 상태를 반전시킵니다. (ON <-> OFF)
      }
    }
  }

  digitalWrite(ledPin, ledState);  // LED 상태를 출력합니다.

  lastButtonState = reading;  // 이전 버튼 상태를 업데이트합니다.
}

다음으로 풀업 저항 설정 방법 입니다.

풀업 저항 설정 방법은 크게 2가지가 있습니다.

1. 하드웨어 셋팅

1. 스위치 입력단자(D7)번에 저항(10K ohm) 연결 후
2. 저항의 반대쪽은 5V 전압을 연결해주면 됩니다.

시연영상

 

2. 소프트웨어 셋팅

 

const int switchPin = 7; // 스위치 연결핀 
const int ledPin = 13; // LED 연결핀

void setup() {
  pinMode(switchPin, INPUT_PULLUP); // 스위치핀을 입력으로 
  pinMode(ledPin, OUTPUT); // LED핀을 출력으로
  Serial.begin(9600);
}

void loop() {
  int switchState = digitalRead(switchPin); // 스위치핀 읽기
  Serial.println(switchState);
  if (switchState == HIGH) {  
    digitalWrite(ledPin, HIGH); // 스위치 ON시 LED 켜기 
  }
  else {
    digitalWrite(ledPin, LOW); // 스위치 OFF시 LED 끄기
  }
}

 

감사합니다.

 

반응형
LIST
반응형
SMALL

녕하세요! Choi GPT 입니다.

오늘은 팅커캐드(Tinkercad)의 TMP36 온도센서를 활용하여 LED를 연동하는 프로그램을 소개하고자 합니다.

int sensor = A0;
int RLED = 9;
int YLED = 10;
int BLED = 11;

void setup()
{
  Serial.begin(9600);
  pinMode(RLED, OUTPUT);
  pinMode(YLED, OUTPUT);
  pinMode(BLED, OUTPUT);
}

void loop()
{
  int sensing = analogRead(sensor);
  float voltage = sensing*5.0/1024.0;
  float temperture = voltage *100-50;
  Serial.print("temperture: ");
  Serial.println(temperture);
  delay(100);
  if(temperture >=-40 && temperture <=20)
  {
    digitalWrite(RLED, 1);
    digitalWrite(YLED, 0);
    digitalWrite(BLED, 0);
  }
   else if(temperture >=21 && temperture <=100 )
  {
    digitalWrite(RLED, 0);
    digitalWrite(YLED, 1);
    digitalWrite(BLED, 0);
  }
   else if(temperture >=101 && temperture <=125 )
  {
    digitalWrite(RLED, 0);
    digitalWrite(YLED, 0);
    digitalWrite(BLED, 1);
  }
  else
  {
    digitalWrite(RLED, 0);
    digitalWrite(YLED, 0);
    digitalWrite(BLED, 0);
  }
}

TMP36_r2.txt
0.00MB

반응형
LIST
반응형
SMALL

안녕하세요! Choi GPT 입니다.

오늘 소개해드릴 내용은 팅커캐드에 있는 TMP36 이라는 온도센서를 소개하고자 합니다.

 

int sensor = A0;

void setup()
{
  Serial.begin(9600);
}

void loop()
{
  int sensing = analogRead(sensor);
  float voltage = sensing*5.0/1024.0;
  float temperture = voltage *100-50;
  Serial.print("temperture = ");
  Serial.println(temperture);

  delay(100);
}

TMP36_r1.txt
0.00MB

반응형
LIST
반응형
SMALL

안녕하세요! Choi GPT 입니다.

오늘은 팅커캐드(Tinkercad)의 회로 카테고리 관련 기본화면 구성 및 사용방법에 대한 내용을 소개하고자 합니다.

팅커캐드 초기화면(로그인 후)

만들기(1번) 선택 후 → 회로(2번)을 클릭합니다.

팅커캐드 회로 초기화면

  1. 제목 설정 : 프로젝트별 구분을 위한 제목을 수정할 수 있습니다.
  2. 단축 아이콘 : 각 상황에 따라 명령어를 수행할 수 있는 단축 명령어 입니다.
  3. 코드 / 시뮬레이션 시작 : 회로 제작 후 동작을 위한 코딩작성 및 작성이 완료된 장치의 동작여부를 확인 할 수 있는 시뮬레이션 단축 명령어 등이 있습니다.
  4. 회로 구성을 위한 소자 및 모듈을 제공하는 화면 입니다.

다음으로 화면 조작방법에 대한 설명을 드리고자 합니다.

아래 영상을 시청해주세요~

 

 

다음에는 기본 LED 회로를 구성하고 블럭코딩 및 텍스트코딩 연동방법 및 시뮬레이션 방법에
대해 설명 드리도록 하겠습니다.

감사합니다~

 

 

반응형
LIST
반응형
SMALL

안녕하세요! Choi GPT 입니다.
오늘은 팅커캐드(Tinkercad) 사이트 기본 화면 및 메뉴구성에 대한 소개를 하고자 합니다.

그림1. 팅커캐드 로그인 후 초화면

팅커캐드는 앞서 말씀드린대로 3D모델링 및 전자분야 회로구성 크게 두가지를 할 수 있습니다.

그림1 의 사진이 로그인 후 최초 화면에서 보이는 내용 입니다.

1(만들기) - 새로운 3D디자인 화면 또는 새로운 회로 화면을 추가할 수 있습니다.

2(3D 디자인) - 기존에 사용자가 제작한 3D 디자인 목록이 표시됩니다.(Cloud 환경에 저장된 내용)

3(회로) - 기존에 사용자가 제작한 회로 목록이 표시됩니다.(Cloud 환경에 저장된 내용)

저 최지피티가 몸담고 있는 분야는 전자회로 분야이기에
다음편에는 전자회로 시뮬레이션 방법에 대한 기본적인 설명을 드리겠습니다.

감사합니다.

 

 

반응형
LIST
반응형
SMALL

안녕하세요! Choi GPT 입니다.
오늘은 팅커캐드(Tinkercad) 사이트 소개 및 초기 접속 방법에 대한 설명을 하고자 합니다.

 

팅커캐드란?
팅커캐드(Tinkercad)는 3D 디자인 및 모델링 도구로,
온라인 상에서 사용할 수 있는 웹 기반 애플리케이션입니다.

팅커캐드는 Autodesk 사에서 개발하였으며, 사용자들이
간단하게 3D 모델을 만들고 
시뮬레이션할 수 있도록 도와줍니다.
팅커캐드는 초보자부터 전문가까지 다양한 사용자를 위한 진입 장벽이 낮은 인터페이스를 제공합니다.
그래서 교육 기관이나 학생들 사이에서 많이 활용되며,
STEM(과학, 기술, 공학, 수학) 교육과 관련된 프로젝트나 실험 등을 지원합니다.
팅커캐드에서는 다양한 기하 도형, 부품, 컴포넌트를 활용하여 3D 모델을 만들 수 있습니다.
사용자들은 드래그 앤 드롭 방식으로 객체를 배치하고 크기를 조절하며, 필요에 따라 회전이나 이동을 시킬 수 있습니다. 또한, 팅커캐드는 모델의 물리적 동작을 시뮬레이션하고,
전자회로를 설계하고 시험해볼 수 있는 기능도 제공합니다.
틴커캐드는 무료로 사용할 수 있으며, 웹 브라우저 상에서 직접 접속하여 사용할 수 있습니다.
따라서 별도의 소프트웨어 설치가 필요하지 않습니다.

팅커캐드 소개영상 (출처:팅커캐드 공식 유튜브 채널)

https://www.tinkercad.com/

 

Tinkercad | From mind to design in minutes

Tinkercad is a free, easy-to-use app for 3D design, electronics, and coding.

www.tinkercad.com

 

위 사이트를 접속하면 아래와 같은 초기화면을 볼 수 있습니다.

팅커캐드 초기화면


다음으로 회원가입에 대한 설명을 드리고자 합니다.
회원가입을 하게되면 Cloud 환경으로 접속이 가능하고 작성한 모델링 자료 및 회로설계 자료를
온라인상에 저장할 수 있습니다.

오른쪽 상단의 등록 버튼을 클릭합니다.

 

그럼 다음 화면에는 이런게 나옵니다.

여기서 개인 계정 생성 버튼 클릭!!

이메일로 계정등록을 하시면 됩니다.

회원 가입이 완료 되셨다면 다음시간에는 팅커캐드 사용방법에 대한 기본적인 소개를 드리겠습니다.

감사합니다.

 

 

반응형
LIST

+ Recent posts