Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
Tags
- ESP32_S2_WROVER
- kotlin
- L293D
- KiCad
- 안드로이드스튜디오
- ESP32_S2
- androidstudio
- 라즈베리파이 피코
- GCD
- string함수
- 업캐스팅
- 우송대 라즈베리파이 피코
- 아두이노 모터 드라이버
- 재정의함수
- 약수 구하기
- 개발 보드
- 유클리드 호제법
- Arduoin
- 카이캐드 설치
- 카이캐드 다운로드
- 우송대
- 우송대학교
- 7세그먼트
- 자료구조
- ATmega328p
- 추상화함수
- 코틀린
- PICO4
- 카이캐드
- 아두이노
Archives
- Today
- Total
개발자의 생활
2023년 1학기 4주차 과제 본문
4_1
#include "pitches.h"
int speakerPin = A3;
// 스피커 연결 핀
int melody[] = {
// 학교 종 멜로디, 0은 쉼표
NOTE_G4, NOTE_G4, NOTE_A4, NOTE_A4, NOTE_G4, NOTE_G4, NOTE_E4, 0,
// 392, 392, 440, 440, 392, 392, 330, 0,
NOTE_G4, NOTE_G4, NOTE_E4, NOTE_E4, NOTE_D4, 0,
// 392, 392, 330, 330, 294, 0,
NOTE_G4, NOTE_G4, NOTE_A4, NOTE_A4, NOTE_G4, NOTE_G4, NOTE_E4, 0,
// 392, 392, 440, 440, 392, 392, 330, 0,
NOTE_G4, NOTE_E4, NOTE_D4, NOTE_E4, NOTE_C4, 0
// 392, 330, 294, 330, 262, 0
};
int noteDuration = 4;
// 4분 음표
void setup() {
Serial.begin(9600);
}
void loop() {
for (int thisNote = 0; thisNote < sizeof(melody) / sizeof(int); thisNote++) {
int noteLength = 1000 / noteDuration;
// 음표 길이를 시간으로 변환
tone(speakerPin, melody[thisNote], noteLength);
// 단음 재생
delay(noteLength);
// 음계간 구분
noTone(speakerPin);
// 현재 음 재생 중지(A0)
}
Serial.println(sizeof(melody) / sizeof(int));
Serial.println(sizeof(melody));
Serial.println(sizeof(int));
while (true);
// 1회 재생 후 대기
}
pitches.h 해더파일 안에는 음에 맞는 주파수 코드가 들어있습니다.
4_2
int input_button[8] ={2,3,4,5,6,7,8,9};
//int note[8]={262,294,330,349,392,440,494,523};
int note[8]={2093,2349,2637,2793,3136,3520,3951,4186};
int value[8]={};
int piezo = A3;
void setup()
{
for (int i = 0; i < 8; i++){
pinMode(input_button[i], INPUT);
//배열에 있는 핀을 모두 입력으로 설정
}
pinMode(piezo, OUTPUT);
//A3에 연결된 부저 핀을 출력으로 설정
}
void loop(){
for (int i = 0; i < sizeof(note)/sizeof(int) ; i++){
//배열길이를 가져와 0~배열길이 만큼 반복
value[i] = digitalRead(input_button[i]);
//해당 핀의 상태를 가져와 배열에 순서대로 담는다.
}
for (int i = 0; i < 8; i++){
if( value[i] == HIGH){
//0~7까지 반복하면서 HIGH일때만 실행
tone(piezo, note[i]);
//A3핀에 해당 주파수를 가져와 실행
delay(200);
//0.2초 딜레이
}
}
noTone(piezo);
//출력정지
}
4_3
void setup( ) {
Serial.begin(9600);
}
void loop( ) {
int reading = analogRead(A1);
// 온도 센서 읽기
float voltage = reading * 5.0 / 1024.0;
// ADC 반환값을 전압으로 변환
float temperatureC = voltage * 100;
// 전압에 100을 곱하면 섭씨온도를 얻을 수 있다.
Serial.print(voltage + String(" V : "));
Serial.print(temperatureC + String(" C, "));
float temperatureF = (temperatureC * 9.0 / 5.0) + 32.0;
// 화씨온도로 변환
Serial.println(temperatureF + String(" F"));
delay(1000);
}
4_4
void setup() {
Serial.begin(9600);
// 직렬 포트 초기화
}
void loop() {
int reading = analogRead(A2);
// 조도 센서 읽기
Serial.print(String("ADC : ") + reading );
float voltage = reading * 5.0 / 1024.0;
// ADC 반환 값을 전압으로 변환
Serial.println(String(", Voltage : ") + voltage);
delay(1000);
}
4_5
int Sensor_input = A2;
int LED_1 = 9, LED_2 = 10, LED_3 = 11, LED_4 = 12;
int Sensor_Value = 0;
void setup()
{
pinMode(Sensor_input, INPUT);
pinMode(LED_1, OUTPUT);
pinMode(LED_2, OUTPUT);
pinMode(LED_3, OUTPUT);
pinMode(LED_4, OUTPUT);
Serial.begin(9600);
}
void loop()
{
digitalWrite(LED_1, LOW);
digitalWrite(LED_2, LOW);
digitalWrite(LED_3, LOW);
digitalWrite(LED_4, LOW);
Sensor_Value = analogRead(Sensor_input);
Serial.println(Sensor_Value);
if ((0 <= Sensor_Value) && (Sensor_Value < 250))
{
digitalWrite(LED_1, HIGH);
delay(3000);
}
else if ((250 <= Sensor_Value) && (Sensor_Value < 500))
{
digitalWrite(LED_2, HIGH);
delay(3000);
}
else if ((500 <= Sensor_Value) && (Sensor_Value < 750))
{
digitalWrite(LED_3, HIGH);
delay(3000);
}
else if ((750 <= Sensor_Value) && (Sensor_Value < 1000))
{
digitalWrite(LED_4, HIGH);
delay(3000);
}
else
{
digitalWrite(LED_4, HIGH);
delay(500);
digitalWrite(LED_4, LOW);
delay(500);
}
}
'과제 > 아두이노' 카테고리의 다른 글
2024년2학기 9주차 과제 (0) | 2024.11.09 |
---|---|
2023년 1학기 6주차 (0) | 2023.04.16 |
2023년 1학기 5주차 (7세그먼트 제어) (0) | 2023.04.07 |
2023년 1학기 3주차 과제(millis사용하기) (0) | 2023.03.24 |
2023년 1학기 2주차 실습과제 (0) | 2023.03.17 |