Переделка комбайна кухонного

Здравствуйте вот вчем проблемка, есть кухонный комбаин, в нем вышла из строя микроконтроллер, прошивки не достать, начал все делать на arduino там все го 3 кнопки управления, стоп, старт и импульсный режим при нажатии этой кнопки включается апарат опуслил кнопку он останавливается, вот не могу понять как добавить в скетч эту кнопку! я добавляю и перестают работать другие две, помогите пожалуйста разобраться и как реализовать переключение мощьности программно

int button = 9;//кнопка старт
int button2 = 8;//кнопка стоп
int button3 = 7;//PULSE 
int button4 = 10;//кнопка КОЛ ОБОРОТОВ ЗВЕЗДА

int rele = 2;//реле
int rele2 = 3;//реле 
int rele3 = 4;//реле нижние три
int rele4 = 5;//реле 
int rele5 = 6;//реле 
int buttonState = 0;// хранение состоянии кнопки
int buttonState2 = 0;// хранение состоянии кнопки


void setup() {

pinMode(rele, OUTPUT);
pinMode(rele2, OUTPUT);
pinMode(rele3, OUTPUT);//реле нижние три
pinMode(rele4, OUTPUT);
pinMode(rele5, OUTPUT);

pinMode(button, INPUT);//кнопка старт
pinMode(button2, INPUT);//кнопка стоп
pinMode(button3, INPUT);//PULSE 
pinMode(button4, INPUT);//кнопка КОЛ ОБОРОТОВ ЗВЕЗДА-ТРЕУГОЛЬНИК
}

void loop(){

buttonState = digitalRead(button);// состояние кнопкИ старт включение
buttonState2 = digitalRead(button2);// состояние кнопкИ стоп выключения

if (buttonState == HIGH)
 {digitalWrite(rele, HIGH);}// включить реле
 if (buttonState2 == HIGH)
 {digitalWrite(rele, LOW);}// выключить реле

А где про третью кнопку в коде?

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

удачи

1 лайк
 buttonState = digitalRead (button3);
  if (buttonState == HIGH) {
    digitalWrite(rele, HIGH);
    delay(100);
 if(digitalRead(button3)==HIGH)//если кнопка нажата ...
 {
 digitalWrite(rele,HIGH);//включить реле
 }
 else//если не нажата...
 {
 digitalWrite(rele,LOW);//выключить реле
 }

Вот это мешает работать кнопке включения. Нужно игнорировать весь этот блок если вы включили комбайн первой кнопкой

Стоит дома кухонный комбайн. Никаких контроллеров. Две кнопки - старт/стоп (с фиксацией) и импульсный режим (без фиксации). Зачем в этой штуке контроллер? Куда катится мир?

ЗЫ: вопрос был не к ТС, так мысли в слух…

2 лайка

Чукча - не читатель, чукча - писатель?
Прочтите, наконец, для чего предназначен раздел, где Вы создали тему!

Аднака, новый канбайн покупать ннада…

2 лайка





ну что, красиво…

1 лайк
const byte button_START = 2;
const byte button_STOP = 3;
const byte button_IMP = 4;
const byte RELE_ = 5;

byte button_START_st = 0;
byte button_STOP_st = 0;
byte button_IMP_st = 0;

bool button_START_flg = false;
bool button_STOP_flg = false;
bool button_IMP_flg = false;

unsigned long last_millis = 0;

void read_button();

void setup() {

  pinMode(button_START, INPUT_PULLUP);//кнопка старт
  pinMode(button_STOP, INPUT_PULLUP);//кнопка стоп
  pinMode(button_IMP, INPUT_PULLUP);//PULSE
  pinMode(RELE_, OUTPUT);
  digitalWrite(RELE_, LOW);
}

void loop() {
  if (millis() - last_millis >= 10) {
    last_millis = millis();
    read_button();
  }
}


void read_button() {

  if (!digitalRead(button_START) && !button_START_flg) {
    button_START_st++;
    if (button_START_st >= 2) {
      button_START_flg = true;
      button_STOP_flg = false;
      button_IMP_flg = false;
      button_START_st = 0;
      digitalWrite(RELE_, HIGH);
      //включили
    }
  }

  if (!digitalRead(button_STOP) && !button_STOP_flg) {
    button_STOP_st++;
    if (button_STOP_st >= 2) {
      button_STOP_flg = true;
      button_START_flg = false;
      button_IMP_flg = false;
      button_STOP_st = 0;
      digitalWrite(RELE_, LOW);
      //выключили
    }
   
  }

  if (!digitalRead(button_IMP) && !button_IMP_flg) {
    button_IMP_st++;
    if (button_IMP_st >= 2) {
      button_IMP_flg = true;
      button_START_flg = false;
      button_STOP_flg = false;
      digitalWrite(RELE_, HIGH);
      //включили ИМП
    }
   
  }

  if (digitalRead(button_IMP) && button_IMP_flg) {
    button_IMP_st++;
    if (button_IMP_st >= 4) {
      button_IMP_flg = false;
      digitalWrite(RELE_, LOW);
      //выключили ИМП
      button_IMP_st = 0;
    }

  }
}

На скорую руку, как вариант
Всё равно ua6em сделает… наверно))

bandicam 2022-12-22 17-27-32-758

Добавил защиту от одновременного нажатия.

void read_button() {

//============== это добавил ========
  if (!digitalRead(button_START) && !digitalRead(button_STOP))
   button_START_st = 0;
  if (!digitalRead(button_START) && !digitalRead(button_IMP))
   button_START_st = 0;
   if (!digitalRead(button_STOP) && !digitalRead(button_IMP))
   button_IMP_st = 0; //приоритеты при одновременном нажатии
 //==================================  

  if (!digitalRead(button_START) && !button_START_flg) {
    button_START_st++;
    if (button_START_st >= 2) {
И.Т.Д.

А вообще, это легко решается аппаратно, например, с помощью реле, или ещё проще , двух кнопок: одна с фиксацией, другая без
(см#6)

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

управление идет через микросхему uln2003a

Если вы про мой скетч, то проверьте, как у вас подключены кнопки. Должны быть так же, как на гифке из Протеуса, что я выложил. Пины назначить соответственно…

P.S. Надеюсь догадаетесь, что отладку логики работы управления силовыми реле надо производить без двигателя, иначе в лучшем случае выбъет автомат…Можно нагрузить лампами накаливания вместо обмоток

Для общего развития .

Эта кнопка называется “толчок”, а в терминологии условного противника “JOG”