Почему мой выключатель срабатывает без нажатия кнопки?
Я здесь новичок, извините, если форматирование некорректно.
int button = 2;
int relay = 3;
int speaker = 4;
void setup()
{
pinMode(button, INPUT_PULLUP);
pinMode(relay, OUTPUT);
pinMode(speaker, OUTPUT);
}
void loop()
{
if(digitalRead(button) == 0)
{
digitalWrite(relay, HIGH);
tone (speaker, 100, 300);
delay (3000);
}
else
{
digitalWrite(relay, LOW);
}
}
Я хочу, чтобы реле срабатывало и оставалось открытым только пока нажата кнопка. Однако по какой-то причине прикосновение к контакту 2 вызывает срабатывание реле и звук, даже если я не подключаю его к земле.
Если я уберу тон (динамик, 100, 300);
он сработает только при нажатии кнопки, соединяющей контакт 2 с землей, но, очевидно, не воспроизведет тон.
1 ответ
Лучший ответ:
Я хочу, чтобы реле срабатывало и оставалось открытым только пока нажата кнопка. нажато. Однако по какой-то причине прикосновение к штифту 2 приводит к срабатыванию реле и звук, даже если я не подключаю его к земле.
Прикосновение к штифту похоже на подключение его к земле с помощью резистора (человеческое тело является проводником). Он может быть или не быть сильнее подтягивающего резистора.
Если я уберу тон (динамик, 100, 300); он срабатывает только тогда, когда кнопка, соединяющая контакт 2 с землей, нажата, но, очевидно, не воспроизвести тон.
Активация соседнего контакта влияет на подтяжку контакта 2. Попробуйте внешнюю подтяжку контакта 2.
- Как использовать SPI на Arduino?
- Как решить проблему «avrdude: stk500_recv(): programmer is not responding»?
- Как создать несколько запущенных потоков?
- Как подключиться к Arduino с помощью WiFi?
- avrdude ser_open() can't set com-state
- Как узнать частоту дискретизации?
- Что такое Serial.begin(9600)?
- Я закирпичил свой Arduino Uno? Проблемы с загрузкой скетчей на плату
как подключен динамик?, @Juraj
@Gerben, извините, на доске все было правильно, но я неправильно скопировал сюда., @BreakoutOfTheBox
@Juraj, Красный провод подключен к контакту 4, а черный — к GND на POWER., @BreakoutOfTheBox
это пьезодинамик? потому что обычный динамик не должен подключаться без резистора?, @Juraj
@juraj Пьезоэлектрический преобразователь — это динамик, однако проблема не может быть только в нем, так как даже если я не подключаю динамик, ошибку вызывает только код., @BreakoutOfTheBox
Я не вижу в вашем вопросе никаких красных или черных проводов., @Nick Gammon