Дебютирование базового оборудования

Я смотрел серию учебников по Arduino Джереми Блума, и он объяснил необходимость дебюта в простой схеме, включающей кнопку. Нажатие кнопки один раз должно означать, что светодиод остается включенным, а нажатие кнопки снова должно означать, что светодиод должен оставаться выключенным, и так далее.

Он реализовал аппаратную разгерметизацию этой схемы: использовал RC-схему вместе с инвертирующим триггером Шмитта.

https://www.youtube.com/watch?v=CRJUdf5TTQQ&list=PLA567CE235D39FA84&index=10 2:45-8:45.

Однако схема работает не так, как ожидалось, когда я внедрил денбункинг. Он ведет себя так, как будто дебоширование не имеет никакого эффекта:-

Если кто-нибудь захочет посмотреть симуляцию:- https://www.tinkercad.com/things/dniOQmnxJPY

Где именно я ошибся? Я несколько раз проверял все соединения, похоже, именно это было у Джереми Блюма в его видео...

, 👍0

Обсуждение

Я изменил "отладку" в названии на "отмену", потому что, очевидно, вы это имели в виду. Также "аппаратная отладка" имеет особое значение для микроконтроллеров. Это привело бы только к путанице, @chrisl

При переходе по ссылке для вашей симуляции мне необходимо войти в систему. Может быть, вам нужно как-то обнародовать симуляцию, прежде чем кто-нибудь сможет ее увидеть., @chrisl

Понятно, спасибо, что дали мне знать, @satan 29

@chrisl Я обнародовал это сейчас., @satan 29

@chrisl я отредактировал ссылку, @satan 29

@PythonSchlange Я Гейб отредактировал ссылку/, @satan 29

@jsotola это означает, что схема ведет себя так же, как она вела себя до отключения., @satan 29

Вы укоротили нижний и верхний штифты 74HC14, нет?, @SBF

@SBF как я его закоротил?, @satan 29

что соединяет верхний правый резистор со светодиодом?, @jsotola

@jsotola Я не ... понял твой вопрос.... Катод светодиода подключен к заземлению через резистор..., @satan 29

что делает связь между резистором и светодиодом?, @jsotola

@jsotola металлические рельсы макета....?, @satan 29

да, это верно ... теперь посмотрите, куда вы подключили свой IC, @jsotola

@satan29 То, что SBF имел в виду, заключается в следующем: 74HC14 имеет 2 ряда штырей, которые вы поместили на одну сторону макета. Это означает, что первый в левом ряду выводов чипа и первый в правом ряду-это соединение. Аналогично для всех других контактов. Такие чипы необходимо размещать прямо посередине макета, чтобы между сторонами не было электрического соединения. Это твоя проблема., @chrisl

Вы должны посмотреть учебник на YouTube о том, как использовать макет. В вашей конфигурации есть серьезные проблемы. К вашему сведению, на вашем 74hc14 контакт 7 заземлен, а контакт 14-Vcc (питание). У вас есть питание, идущее на контакты 1 и 14, и заземление, идущее на контакты 7 и 8. У вас также есть другие противоположные штыри, соединенные друг с другом., @lurker

о, я понимаю, @chrisl, спасибо., @satan 29

@lurker tinkercad предлагает сообщить вам, какой контакт что делает в IC. Я знаю, как пользоваться макетной платой! но я мало работал с IC, и я действительно понимаю ошибку, на которую указал Крисл., @satan 29


1 ответ


Лучший ответ:

2

Вы не изменили последнюю кнопку, но сравнили ее с ВЫСОКОЙ. Измените свой код на следующий.

Вы можете легче избежать таких ошибок, если поставите пробелы вокруг операторов.

//sp is switchpin, lp is ledpin

int sp=2; //pin с включенным прерыванием (interrupt 0)
bool ledon=LOW;
bool lastbutton=LOW;
int lp=9;
void setup()
{
  Serial.begin(9600);
  pinMode(sp, INPUT);
  pinMode(lp,OUTPUT);
}

void loop()
{

   if (digitalRead(sp)==HIGH && lastbutton==LOW){
      ledon=!ledon;
      lastbutton = HIGH; // ранее здесь был lastbutton==HIGH;
   }
    

   else {
     lastbutton=digitalRead(sp);
      }
   Serial.println(ledon);
   digitalWrite(lp,ledon);

  
        
     }
,

Ах да. Спасибо! Дебютирование сейчас работает отлично. Но по какой-то странной причине светодиод включается в начале моделирования.... без нажатия переключателя или чего-либо еще....есть идеи, почему?, @satan 29

Я думаю, из-за твоего фильтра. Требуется некоторое время, чтобы зарядить этот конденсатор, что означает, что ваш инвертирующий триггер Шмитта начинает работать с низким уровнем, и при первом запуске цикла ваш вывод 2 начинает работать с высоким. Если вы сделаете небольшую задержку в своей " настройке ()", индикатор погаснет., @Kerbolosh

действительно. задержка(100) исправляет это . Большое спасибо!, @satan 29