Умный секундомер
- Войдите на сайт для отправки комментариев
Пт, 13/11/2020 - 13:37
Всех приветствую!
Есть задание, написать секундомер "умный", чтобы при подсчете мигали два светодиода.
Код написал, но почему-то не могу заставить диоды мигать. В этом деле новичок.
#define LED 7
#define LED 4
#define del 500
#include <LiquidCrystal.h>
#define DIODE_DROP 0.6
LiquidCrystal lcd(13, 12, 11, 10, 9, 8);
unsigned long startTime;
boolean running = true;
void setup()
{
pinMode(7, OUTPUT);
pinMode(4, OUTPUT);
lcd.begin(16, 2);
}
void blinkLED()
{
digitalWrite(7,HIGH);
delayMicroseconds(1000);
digitalWrite(7,LOW);
delayMicroseconds(1000);
digitalWrite(4,HIGH);
delayMicroseconds(1000);
digitalWrite(4,LOW);
delayMicroseconds(1000);
}
void loop()
{
blinkLED();
startTime = millis()/1000;
lcd.setCursor(0, 0);
if(startTime%5==0){
lcd.print(millis()/1000.);
lcd.print(".");
}else{
lcd.print(millis()/100.);
}
delay(100);
lcd.clear();
}
так они мигают, только очень быстро - вы этого не успеваете заметить. У вас частота мигания настроена 1000 раз в секунду
Нравятся мне темы с приставкой "умный..." - умный дом, умный. секундомер... Сразу хочется спросить, - насколько умный? Умнее хозяина? :))
Вы предлагаете мне зарегистрироватся на ТинкерКаде, чтобы посмотреть Ваш код? - думаете мне больше заняться нечем?
Хотите помощи - выкладывайте код сюда
вы разницу между delay(1000) и delayMicroseconds(1000) не понимаете?
вы разницу между delay(1000) и delayMicroseconds(1000) не понимаете?
а надо? и там и там жеж 1000
delay - миллисекунд
delayMicroseconds - микросекунды.
вся проблема в том, что, как только я совмещаю два действия, что-то начинает работать не корректно.
я просто в этом деле новичок, у бью уже разные варианты. пока остановился на:
я просто в этом деле новичок
Не, дело не в этом.
я просто в этом деле новичок,
Что, даже после подсказки не видишь, чем отличаются эти коды?
void blinkLED() { digitalWrite(7,HIGH); delayMicroseconds(1000); digitalWrite(7,LOW); delayMicroseconds(1000); digitalWrite(4,HIGH); delayMicroseconds(1000); digitalWrite(4,LOW); delayMicroseconds(1000); }и это?
тогда ты не новичок, ты дебил
Ну вот и выяснили, кто умнее - секундомер или его хозяин.
Держи студент, сам проверишь, я только мигание поправил:
#define LED 7 #define LED 4 #define del 500 #include <LiquidCrystal.h> #define DIODE_DROP 0.6 LiquidCrystal lcd(13, 12, 11, 10, 9, 8); unsigned long startTime; unsigned long oldMillis; boolean running = true; void setup() { pinMode(7, OUTPUT); pinMode(4, OUTPUT); lcd.begin(16, 2); oldMillis = millis(); } void blinkLED() { if(millis()- oldMillis >= 1000){ digitalWrite(7,!digitalRead(7)); digitalWrite(4,!digitalRead(4)); oldMillis = millis(); } } void loop() { blinkLED(); startTime = millis()/1000; lcd.setCursor(0, 0); if(startTime%5==0){ lcd.print(millis()/1000.); lcd.print("."); }else{ lcd.print(millis()/100.); } delay(100); lcd.clear(); }Осталось поправить код в голове хозяина. Когда хозяин думает,то должен мигать двумя глазами. Перестал мигать,значит завис.
Нравятся мне темы с приставкой "умный..."
Так и хочется ответить крылатой фразой от dimax!