Зуммер+кнопка+arduino
Я хочу остановить звук зуммера после того, как нажму кнопку. Я попробовал код, но когда кнопка не нажата, зуммер продолжает издавать звук. Как я могу это исправить?
const int pin_contact= 6;
const int buzzer = 9; //зуммер на вывод arduino 9
void setup(){
pinMode(buzzer, OUTPUT); // Установить зуммер - pin 9 в качестве выходного
pinMode(pin_contact, INPUT);
Serial.begin(9600);
}
void loop() {
tone(buzzer, 200);
int stare_contact = digitalRead(pin_contact);
if (stare_contact == HIGH) {
noTone(buzzer);
}
}
@Biancaaa, 👍2
Обсуждение2 ответа
▲ 1
Попробуй вот это
int LEDState = 1;
int SwitchPin = 6;
int LEDPIN = 9;
void setup()
{
pinMode(LEDPIN,OUTPUT);
pinMode(SwitchPin,INPUT);
digitalWrite(LEDPIN,LEDState);
}
void loop()
{
int SwitchState = digitalRead(SwitchPin);
if(LEDState==1 && SwitchState==HIGH){
LEDState = 0;
}
digitalWrite(LEDPIN,LEDState);
delay(10);
}
,
@Subha Jeet Sikdar
Извини, Джсотла, я уже все исправил... @Biancaaa Я исправил код и попробовал использовать светодиод, кроме зуммера, потому что в настоящее время зуммер недоступен в моих коллекциях, в конце концов, попробуйте этот код, этот код очень хорошо работал для меня, используя светодиод в качестве выходного индикатора вместо зуммера, @Subha Jeet Sikdar
▲ 1
Ваш зуммер активен низко? попробуйте этот код ниже. он будет переключать вывод зуммера.
const int buzzerPin = 9;
const int buttonPin = 6;
int buzzerState = 1;
int buttonState;
int buttonTemp = 0;
void setup() {
pinMode(buzzerPin, OUTPUT);
pinMode(buttonPin, INPUT);
Serial.begin(9600);
}
void loop() {
buttonState = digitalRead(buttonPin);
digitalWrite(buzzerPin,buzzerState);
if (buttonState == HIGH && buttonTemp == 0){
Serial.print("Buzzer toggle to : ");
if (buzzerState) {
Serial.println("LOW");
buzzerState = 0;
} else {
Serial.println("HIGH");
buzzerState = 1;
}
buttonTemp = 1;
} else if (buttonState == LOW) {
buttonTemp = 0;
}
}
,
@Tanatorn Boonprasert
Смотрите также:
- Цепь с зуммером не работает
- Пассивный зуммер работает с AnalogWrite(), но не с DigitalWrite(). Он также имеет постоянный статический шум.
- Tone() конфликтует с библиотекой IRremote (множественное определение `__vector_7')
- Ток потребления зуммера
- Почему пассивный зуммер щелкает, а не гудит, когда установлен на ВЫСОКИЙ?
- Ардуино - Воспроизведение файлов WAV с помощью зуммера
- Как включить и выключить зуммер
- Пьезозвук мелодия ардуино для автосигнализации
я попытался сделать снимок экрана, но не смог загрузить его в комментарии, поэтому я использовал ссылку. Но в конце концов мне это удалось, используя первый код и добавив в схему 2 резистора. Спасибо!, @Biancaaa
Если один из ответов вам помог, вы можете проголосовать за него. Если ни то, ни другое не помогло вам, и вы думаете, что можете дать ответ, который кто-то другой сочтет полезным, вы можете ответить на свой собственный вопрос. Если вопрос и без ответа, и без ответа, то, вероятно, лучше его удалить., @timemage
Это хорошо знать. Вы знаете, что я пытался проголосовать за ответ, но мне нужно заработать репутацию 15, чтобы проголосовать за публикации., @Biancaaa
Ах, ну вот тебе и 10., @timemage
Вы перезапускаете звуковой сигнал на каждой итерации " loop ()", поэтому, как только вы перестаете нажимать кнопку, звук запускается снова. Самым простым решением было бы переместить команду "тональный сигнал (зуммер, 200);" из "цикла ()" и поместить ее в конце " настройка ()". Также убедитесь, что ваша кнопка действительно показывает “ВЫСОКИЙ” при нажатии. Многие кнопки активны “НИЗКО”., @StarCat