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

Здравствуйте, вновь проблема с кнопкой на ардуино. Написал скетч, загрузил, все скомпилировалось, отключил от компа, присоединил к батарейке и при нажатии на кнопку просто гаснет индикатор 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:
Учитель года!

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

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

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

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

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

button_without_resistor

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

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

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

pinMode (2, INPUT_PULLUP);

1 лайк

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

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

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

1 лайк

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

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

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

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

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

3 лайка