마이크로 프로세서 - 연산 제어 논리
마이크로 컨트롤러 - 마이크로 프로세서 + 기타
온도 센서 : 5v, 아날로그 신호, 그라운드 순서
7 Segment (FND) - (숫자판1개) : 점이 아래로 왼쪽 아래부터 반시계로 1~10번
위부터 시계방향으로 a~g
1번 e
2번 d
3번 그라운드
4번 c
5번 점
6번 b
7번 a
8번 그라운드
9번 f
10번 g
3번 혹은 8번 하나에 그라운드
Serial interrupt - 0번과 1번을 통한 인터럽트 (1byte)
usb또한 Serial interrupt
Serial.begin(9600)
void serialEvent(){
int value = Serial.read();
Serial.println(value);
}
void loop() {
// put your main code here, to run repeatedly:
value = Serial.read();
Serial.println(value);
if(value=='0') digitalWrite(LED,LOW); // '0' == 48
else if(value=='1') digitalWrite(LED,HIGH);
}
이런식으로 구현할경우 Serial.read() 가 반복되어 value 값이 변한다.
Serial interrupt 를 사용하지않고 비슷하게 구현하기
void loop() {
// put your main code here, to run repeatedly:
if(Serial.available())
{
value = Serial.read();
Serial.println(value);
}
if(value=='0') digitalWrite(LED,LOW); // '0' == 48
else if(value=='1') digitalWrite(LED,HIGH);
}
온도센서 사용하기
#define LED 3
#define TEMP A0
#define VOLT 5.0
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
pinMode(LED,OUTPUT);
pinMode(TEMP,INPUT);
}
void loop() {
// put your main code here, to run repeatedly:
Serial.print(check_t());
Serial.println("'C");
delay(1000);
}
float check_t()
{
return analogRead(TEMP)*VOLT/1024*100; // 공식
}
볼륨
PIEZO (사운드)
인터럽트
를 배웠다