1. 가변저항기
- 1번다리에 가까워 질수록 1, 2번 사이의 저항 감소, 2,3번 사이 저항 증가
2. 아날로그 입력함수
// A/D 변환 결과 값 시리얼 모니터 창 표시
const int var_pin = A0; // 가변저항 연결핀
int analog_val; // 아날로그 값 저장 변수
void setup(){
Serial.begin(115200)
}
void loop(){
int digital_val;
float ff;
digital_val = analogRead(var_pin); //아날로그 값 디지털 변환
ff = (float)digital_val / 1023. * 5.0; //입력 전압값 출력(0~5V)
Serial.print("Input Voltage(0~5) = ");
Serial.println(ff);//입력 전앖 값 출력
Serial.print("Digital Value(0~1023) = ");
Serial.println(digital_val); //디지털 변환 값 출력
Serial.println("----------------------------------");
delay(2000);
}
3. LED에 PWM 신호 출력하기
#pragma once
#include <Arduino.h>
#include <Led.h>
class PWMLed: public Led{
protected:
int value;
public:
PWMLed(int pin, int value = 0);
void setValue(int value);
};
#include "PWMLed.h"
PWMLed::PWMled(int pin, int value): Led(pin), value(value){
analogWrite(pin,value);
}
void PWMLed::setValue(int value){
this -> value = value;
analogWrite(pin, value);
}
#include "PWMLed.h"
const int var_pin = A0;
PWMLed led(9);
void setup(){
}
void loop(){
int analog_val, pwm_val;
analog_val = analogRead(var_pin);
pwm_val = map(analog_val, 0, 1023, 255, 0);
led.setValue(pwm_val);
}
4. Analog클래스로 PWM 신호 출력하기
#pragma once
#include <Arduino.h>
calss Analog{
protected:
int pin;
int from_min;
int from_max;
int to_min;
int to_max;
public:
Analog(int pin, int to_min=0, int to_max=255);
void setRange(int to_min, in to_max)
int read();
};
#include "Analog.h"
Analog::Analog(int pin, int to_min, int to_max):
pin(pin),
from_min(0), from_max(1023);
to_min(to_min), to_max(to_max){
}
void Analog::setRange(int to_min, int to_max)
this -> to_min = to_min;
this -> to_max = to_max;
}
int Analog::Read(){
int value = analogRead(pin);
return map(value, from_min, from_max, to_min, to_max);
}
#include "Analog.h"
#include <PWMLed.h>
Analog sensor(A0, 255, 0);
PWMLed led(9);
void setup(){
}
void loop()
{
int pwm_val = sensor.read();
led.setValue(pwm_val);
}