Кнопка для ардуино

Здравствуйте, вновь проблема с кнопкой на ардуино. Написал скетч, загрузил, все скомпилировалось, отключил от компа, присоединил к батарейке и при нажатии на кнопку просто гаснет индикатор L на плате, при зажатии кнопки индикатор загорается ненадолго и тухнет, а дисплей не выключается (кнопку подключал без резистора), вот скетч.

#include <Arduino.h>
#include <DS3231.h> 
#include <Wire.h>
#include <LiquidCrystal.h>         
DS3231  rtc(SDA, SCL);  
const int rs = 6, en = 7, d4 = 11, d5 = 10, d6 = 9, d7 = 8;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);
int soilMoistureValue = 0;
int soilmoisturepercent = 0; ;
unsigned int recv_size = 0;
unsigned long prev, interval = 1000;
void setup() {     
  pinMode(2, INPUT_PULLUP);
  pinMode(13, OUTPUT);
  lcd.begin(16, 2);
  Serial.begin(9600);
  pinMode(soilMoistureValue, INPUT);
  Serial.begin(115200);              
  rtc.begin();                                          
  //rtc.setTime(18, 14,40);              //  Установить время 16:29:00 (формат 24 часа)
}
void loop() {
  if (Serial.available()) 
    delay(100);
    //lcd.clear();
    while (Serial.available() > 0) 
      lcd.write(Serial.read());  
  const int AirValue = 513;             // Максимальное значение сухого датчика
  const int WaterValue = 215;           // Минимальное значение погруженного датчика         
  soilMoistureValue = analogRead(A0);   // Считываем данные с порта A0 и записываем их в переменную
  soilmoisturepercent = map(soilMoistureValue, AirValue, WaterValue, 0, 100);  
  lcd.setCursor(0,0);
  lcd.print("Humidity:");
  lcd.print(soilmoisturepercent);
  lcd.print("%");
  lcd.print("  ");
  lcd.setCursor(11,1);
  lcd.println(rtc.getTimeStr());    // Отправляем время
  
  delay (1000);                        // Задержка в одну секунду
  lcd.setCursor(0,1);
  lcd.print("T:");
  lcd.print(rtc.getTemp());
  lcd.print("\x99\x43");
  delay (800); 
  int sensorVal = digitalRead(2);
  if (sensorVal == HIGH) {
    digitalWrite(13, LOW);
  } else 
    digitalWrite(13, HIGH); }

точно сами написали?

Код не весь писал сам, для кнопки наше его, и вставил как нужно, но не уверен, что верно

начните с кнопки, заработает движемся дальше:

/*
  Button

  Turns on and off a light emitting diode(LED) connected to digital pin 13,
  when pressing a pushbutton attached to pin 2.

  The circuit:
  - LED attached from pin 13 to ground through 220 ohm resistor
  - pushbutton attached to pin 2 from +5V
  - 10K resistor attached to pin 2 from ground

  - Note: on most Arduinos there is already an LED on the board
    attached to pin 13.

  created 2005
  by DojoDave <http://www.0j0.org>
  modified 30 Aug 2011
  by Tom Igoe

  This example code is in the public domain.

  https://www.arduino.cc/en/Tutorial/BuiltInExamples/Button
*/

// constants won't change. They're used here to set pin numbers:
const int buttonPin = 2;     // the number of the pushbutton pin
const int ledPin =  13;      // the number of the LED pin

// variables will change:
int buttonState = 0;         // variable for reading the pushbutton status

void setup() {
  // initialize the LED pin as an output:
  pinMode(ledPin, OUTPUT);
  // initialize the pushbutton pin as an input:
  pinMode(buttonPin, INPUT);
}

void loop() {
  // read the state of the pushbutton value:
  buttonState = digitalRead(buttonPin);

  // check if the pushbutton is pressed. If it is, the buttonState is HIGH:
  if (buttonState == HIGH) {
    // turn LED on:
    digitalWrite(ledPin, HIGH);
  } else {
    // turn LED off:
    digitalWrite(ledPin, LOW);
  }
}

спасибо, буду пробовать

Так это код ведь с резистором, а у меня без него, не помогло

код компилируется без ошибок, светодиод на плате гаснет

если кнопка подключена на массу, подтяни её в скетче

:rofl: :rofl: :rofl: :rofl: :rofl:
Учитель года!

1 лайк

Тут похоже в самой кнопке дело, потому что никакой код не помогает. Фото кнопки

А теперь ещё добавьте “Вот схема” и аккуратненько нарисуйте, как именно подключили.

То, что Вы описываете

очень похоже на короткое замыкание.

Рисуйте схему.

Увидел, что неправильно написал, после загрузки скетча индикатор на ардуинке уже погас, извиняюсь за неточность

Кнопка правильно стоит? Поверни на 90 градусов.

правильно, он либо в скетче её не подтянул либо неконтакт

pinMode (2, INPUT_PULLUP);

1 лайк

что значит подтянуть? что нужно дописать?

Отверткой подкрутить, это же очевидно. На что вы рассчитываете с таким уровнем знаний? Если у вас кнопка отнимает целый день, а результата нету, то что ж будет, когда вам понадобится подключить что нибудь более хитрое?

Читайте учебники, вопросами по форуму, тем более по таким поводам, вы ничему не научитесь

2 лайка

Я свое собрал уже, и запрограммировал, если кнопка не рабочая и я не могу подключить - это не значит, что я не умею ничего, и форумы я читал и скетчи разные пробовал, если вам ответить кроме как осуждений нечего, то проходите мимо, а форум нужен как раз для вопросов, тем более это раздел для новичков, а отверткой там нечего подкручивать раз на то пошло

Мля, так проверьте ж её, наконец! Это дело 1-2 секунд!

Значит. У тех, кто хоть что-то умеет, проблем с кнопкой нет и быть не может.

Ещё один такой заход и Вы (а не он) пойдёте лесом.

общения людей между собой, а вовсе не ответов на дебильные вопросы о самом наипростейшем девайсе, какой только может быть!

4 лайка