Показать сообщение отдельно
Старый 09.09.2016, 19:49   #20
xu56857
Московский модуль
 
Аватар для xu56857
 
Регистрация: 02.02.2015
Адрес: Москва
Сообщений: 942
Сказал(а) 'не согласен(а)'!: 9
Сказали 'не согласен'! 2 раз(а) в 2 сообщениях
Сказал(а) спасибо: 3,988
Поблагодарили 3,315 раз(а) в 638 сообщениях
Все 'Спасибо' этого пользователя. :
0 за это сообщение
0 Всего
Репутация: репутация неоспорима (3330)
По умолчанию

самый первый вариант программки для индикатора ТМ1637, у меня был именно с функцией delay(), и нечего как-то вычисляло ))) , но это все таки неправильно, надо с millis()



Arduino код:
//спидометр
#include "TM1637.h"
#define CLK 12//pins definitions for the module and can be changed to other ports       
#define DIO 11
TM1637 disp(CLK,DIO);
void setup()
{
  
disp.set(3);//BRIGHT_TYPICAL = 2,BRIGHT_DARKEST = 0,BRIGHTEST = 7;
  
disp.init(D4056A);//D4056A is the type of the module
  
pinMode(3INPUT);//срабатывание датчика слева
  
pinMode(4INPUT);//срабатывание датчика справа
  
pinMode(5OUTPUT);//индикация срабатывания датчика слева
  
pinMode(6OUTPUT);//индикация срабатывания датчика справа
  
pinMode(7OUTPUT);//индикация "готов"
}

void loop()


   
int S=0int T=0disp.display(0);
  
//  if (digitalRead(3) == HIGH && digitalRead(4) == HIGH)
{
  if (
digitalRead(3) == LOW)  // условие на опрос левого датчика 3-го порта

  
{digitalWrite(5HIGH);
     while (
digitalRead(4) == HIGH)// счет времени пока не сработал правый датчик
    
delay(10); T=T+10;}
    
S=T*3.132;
   
disp.display(S);
     
delay(2000);}

  else
     
digitalWrite(5LOW);
      if (
digitalRead(4) == LOW)  // условие на опрос правого датчика 4-го порта
    
digitalWrite(6HIGH); 
      while (
digitalRead(3) == HIGH)// счет времени пока не сработал левый датчик
    
delay(10); T=T+10;}
    
S=T*3.132;
    
disp.display(S);
      
delay(2000);}
   else
     
digitalWrite(6LOW);}

xu56857 вне форума  
Вверх