To hvite knapper i dagens luke. Vi kobler opp nok en diode, en gul en denne gang og kobler til de...
19. desember
Aktiv buzzer trenger bare spenning inn som input for å gi lyd. Plussen kobler man til D4 i vårt tilfelle og den korte pinnen til jord (blå linje). Programmet nedenfor veksler også mellom grønt og rødt lys når SOS sendes.
buzzer + → D4
buzzer - → blå linje
https://gist.github.com/senikk/9917aaccb3d5437310003026353fffb1
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include <Bounce2.h> | |
// Definer RGB LED-pinnene | |
int redPin = 15; // Rød pinne (PWM) | |
int greenPin = 21; // Grønn pinne (PWM) | |
int bluePin = 22; // Blå pinne (PWM) | |
int buttonPin = 23; | |
int buzzerPin = 4; | |
// PWM-kanaler for ESP32 | |
int redChannel = 0; | |
int greenChannel = 1; | |
int blueChannel = 2; | |
const int dotDuration = 500; // Varighet for en prikk (500 ms) | |
const int dashDuration = 1500; // Varighet for en strek (1500 ms) | |
const int symbolSpace = 500; // Pause mellom tegn (prikk og strek) | |
const int letterSpace = 1500; // Pause mellom bokstaver | |
Bounce debouncer = Bounce(); | |
void setup() { | |
ledcAttachChannel(redPin, 5000, 8, redChannel); | |
ledcAttachChannel(greenPin, 5000, 8, greenChannel); | |
ledcAttachChannel(bluePin, 5000, 8, blueChannel); | |
setColor(0,255,0); | |
pinMode(buttonPin, INPUT_PULLDOWN); | |
pinMode(buzzerPin, OUTPUT); | |
debouncer.attach(buttonPin); | |
debouncer.interval(50); | |
} | |
void loop() { | |
debouncer.update(); | |
if (debouncer.rose()) { | |
setColor(255,0,0); | |
sendSOS(); | |
setColor(0,255,0); | |
} | |
} | |
void sendSOS() { | |
// Send "S" (…) | |
dot(); | |
dot(); | |
dot(); | |
delay(letterSpace); // Pause mellom bokstaver | |
// Send "O" (---) | |
dash(); | |
dash(); | |
dash(); | |
delay(letterSpace); // Pause mellom bokstaver | |
// Send "S" (…) | |
dot(); | |
dot(); | |
dot(); | |
delay(letterSpace); // Pause mellom bokstaver | |
} | |
void dot() { | |
digitalWrite(buzzerPin, HIGH); // Slå på buzzeren | |
delay(dotDuration); // Vent i prikkens varighet | |
digitalWrite(buzzerPin, LOW); // Slå av buzzeren | |
delay(symbolSpace); // Pause mellom tegn | |
} | |
void dash() { | |
digitalWrite(buzzerPin, HIGH); // Slå på buzzeren | |
delay(dashDuration); // Vent i strekkens varighet | |
digitalWrite(buzzerPin, LOW); // Slå av buzzeren | |
delay(symbolSpace); // Pause mellom tegn | |
} | |
// Funksjon for å sette RGB farge på LED-en | |
void setColor(int r, int g, int b) { | |
ledcWrite(redPin, r); | |
ledcWrite(greenPin, g); | |
ledcWrite(bluePin, b); | |
} |