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

Открой для себя EasyEDA, нарисуй схему и выкладывай, каждое изменение правишь там и выкладываешь по новой

1 лайк

Все, работать стала, теперь проблема в другом, почему время сбрасывается после двух нажатий и какой код нужен, чтобы кнопка фиксировалась?

Вот почему до сих пор на УНО нет встроенной кнопки, видите что получается!

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

Эта пестня будет вечной :rofl:

2 лайка

Утопил глубже?

А может тебе проще нахер отсюда пойти?

2 лайка

После вас

Не скажет он, раз не помогли - так и помрете в неведении.

Ему спасибо я и скажу

Теперь можно спросить про батарейку.

Все работает и с батарейкой, время не сбрасывается, вопрос теперь, как сделать так, чтобы кнопка при расжатии не включала системы вновь (в коде не знаю что подправить, вроде и так хорошо все)

#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);
const int buttonPin = 2;  // the number of the pushbutton pin
const int ledPin = 13;
int buttonState = 0;
int soilMoistureValue = 0;
int soilmoisturepercent = 0; ;
unsigned int recv_size = 0;
unsigned long prev, interval = 1000;
void setup() {     
  pinMode(ledPin, OUTPUT);
  pinMode(buttonPin, INPUT);
  lcd.begin(16, 2);
  Serial.begin(9600);
  pinMode(soilMoistureValue, INPUT);
  Serial.begin(115200);              
  rtc.begin();                                          
  //rtc.setTime(19,20,55);              //  Установить время 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); 
  buttonState = digitalRead(buttonPin);
  if (buttonState == HIGH) {
    // turn LED on:
    digitalWrite(ledPin, HIGH);
  } else {
    // turn LED off:
    digitalWrite(ledPin, LOW);
  }

}

Ну, Вам может и нет разницы. Потому у Вас и проблемы на ровном месте возникают.

Мне не видно. Например, Ваша кнопка соединяет контакты или они накоротко замкнуты? Мне догадываться как Вы её воткнули – как положено или под 90 градусов?

1 лайк

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

Сейчас схема другая уже, я с резистором сделал

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

4 лайка

Обстановка стремительно меняется.

1 лайк

оставьте его в покое до пятницы.

Наконец-то до Вас стало доходить что-то! Проблемы действительно в другом, а именно в том, что:

  1. Вы называете невнятные рисунки схемами;
  2. Вы полезли заниматься электроникой не имея под рукой не то, что осциллографа, а даже мультиметра;
  3. на совершенно нормальные советы Вы начинаете огрызаться и хамить.

Вот в этом и проблема!

Я здесь приводил ссылку на тему, где по кнопкам расписано все - и что это такое, и как устроено, и как работает, и как подключать, и еще вагон вопросов и нюансов. Но кому это нужно? Можно же просто сыпать идиотскими вопросами и играть в обиженку )))