Нужен не большой скетч
- Войдите на сайт для отправки комментариев
Вс, 18/04/2021 - 13:55
Привет! Нужен скетч: призапуске, МК проверяет на наличие, отсутствие или соответствие напряжения на аналоговых входах, если все внорме звучит один бип и загорается зеленый светодиод, если есть расхождения, то звучит 3 бип и загорается красный светодиод.
Кто поможет, не безвозмездно, пишите.
Какие напряжения проверяем ?
Постоянное до14 вольт
а точность?
9 вольт на пине допустимо, выше нет.
Чувак не знает что такое "точность".
Чувак не знает что такое "точность".
Так пояснил бы чувак.
2000р скетч
Ок
Если никто больше не возьмётся, пиши завтра на elf-basic@yandex.ru
Хорошо
А че с ватчдогом не обьединил? Или это разные проекты?
Разные, пока за рулем, с телефона пишу, как до компа доберусь, по ватчдогу напишу.
Ну если Дед не возьмётся, за 1000 р напишу. barmaley2m@yandex.ru
И ИХ = одно на одной ноге ?
Ног более 5
Вы в норме ? Не пили ? Спрашиваю еще раз :) На каком количестве ног контролируем напряжение ?!
Я то в норме, а вам это зачем знать?
Тяжелый случай.
#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() {}Какие напряжения проверяем ?
Как с вами связаться?
Сделаю за 500р.
petrovskyi.rv@gmail.com
Спасибо, уже не актуально.