Нужен не большой скетч

soundextrim
Offline
Зарегистрирован: 01.04.2021

Привет! Нужен скетч: призапуске, МК проверяет на наличие, отсутствие или соответствие напряжения на аналоговых входах, если все внорме звучит один бип и загорается зеленый светодиод, если есть расхождения, то звучит 3 бип и загорается красный светодиод. 

Кто поможет, не безвозмездно, пишите.

brokly
brokly аватар
Offline
Зарегистрирован: 08.02.2014

Какие напряжения проверяем ? 

soundextrim
Offline
Зарегистрирован: 01.04.2021

Постоянное до14 вольт

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

soundextrim пишет:
Постоянное до14 вольт

 а точность?

soundextrim
Offline
Зарегистрирован: 01.04.2021

9 вольт на пине допустимо, выше нет.

rst
Offline
Зарегистрирован: 25.06.2018

Чувак не знает что такое "точность".

soundextrim
Offline
Зарегистрирован: 01.04.2021

rst пишет:

Чувак не знает что такое "точность".


Так пояснил бы чувак.

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

2000р скетч

 

soundextrim
Offline
Зарегистрирован: 01.04.2021

Ок

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

Если никто больше не возьмётся, пиши завтра на   elf-basic@yandex.ru

soundextrim
Offline
Зарегистрирован: 01.04.2021

Хорошо

b707
Offline
Зарегистрирован: 26.05.2017

А че с ватчдогом не обьединил? Или это разные проекты?

soundextrim
Offline
Зарегистрирован: 01.04.2021

Разные, пока за рулем, с телефона пишу, как до компа доберусь, по ватчдогу напишу.

Бармалей
Бармалей аватар
Offline
Зарегистрирован: 23.09.2019

Ну если Дед не возьмётся, за 1000 р напишу. barmaley2m@yandex.ru

brokly
brokly аватар
Offline
Зарегистрирован: 08.02.2014

soundextrim пишет:
Постоянное до14 вольт

И ИХ = одно на одной ноге ?

soundextrim
Offline
Зарегистрирован: 01.04.2021

Ног более 5

brokly
brokly аватар
Offline
Зарегистрирован: 08.02.2014

Вы в норме ? Не пили ? Спрашиваю еще раз :) На каком количестве ног контролируем напряжение ?!

soundextrim
Offline
Зарегистрирован: 01.04.2021

Я то в норме, а вам это зачем знать?

brokly
brokly аватар
Offline
Зарегистрирован: 08.02.2014

Тяжелый случай.

#define MAX_U 14400ULL   // напряжение в милливольтах
#define MIN_U 13500ULL 
#define R_HI  10000ULL   // резистор в верхнем плече делителя сопротивление в омах
#define R_LO   4700ULL   // резистор в нижнем плече делителя
#define BEEP_FREQ 1000ULL   // частота пищания в герцах
#define BEEP_TIME 1000ULL   // продолжительность писка в миллисекундах
#define PAUSE_TIME 500ULL   // продолжительность паузы между писками

#define CALC_U(U) ((U*R_LO*1024)/((R_HI+R_LO)*5))/1000

const uint8_t pinControl[]={A0,A1,A2,A3,A4,A5,A6,A7}; // ноги для измерения
const uint8_t pinGreenLed=4; // ноги светодиодов и бипера
const uint8_t pinRedLed=5;
const uint8_t pinBeeper=6;
const uint16_t Umax = CALC_U(MAX_U); 
const uint16_t Umin = CALC_U(MIN_U);

void beepUno(){
   const uint32_t halfPer=500000ULL/BEEP_FREQ;
   for(uint32_t i=0;i<(BEEP_TIME/(halfPer*2));i++){
      digitalWrite(pinBeeper,HIGH);
      delayMicroseconds(halfPer); 
      digitalWrite(pinBeeper,LOW);  
      delayMicroseconds(halfPer);   
   }
   delay(PAUSE_TIME);
}

void setup() {
  pinMode(pinGreenLed,OUTPUT);
  digitalWrite(pinGreenLed,LOW);
  pinMode(pinRedLed,LOW);
  digitalWrite(pinRedLed,OUTPUT);
  pinMode(pinBeeper,LOW);
  digitalWrite(pinBeeper,OUTPUT);
  for(uint8_t i=0;i<sizeof(pinControl);i++){
    uint16_t val=analogRead(pinControl[i]);
    if(val>CALC_U(MAX_U) || val<CALC_U(MIN_U)){
       digitalWrite(pinRedLed,HIGH);
       for(uint8_t i=0;i<3;i++){
          beepUno();
          return;   
       }
    }
  }
  digitalWrite(pinGreenLed,HIGH);
  beepUno();
}

void loop() {}

 

soundextrim
Offline
Зарегистрирован: 01.04.2021

brokly пишет:

Какие напряжения проверяем ? 


Как с вами связаться?

Roman1984
Offline
Зарегистрирован: 17.02.2017

Сделаю за 500р.

petrovskyi.rv@gmail.com

soundextrim
Offline
Зарегистрирован: 01.04.2021

Спасибо, уже не актуально.