Хочу на Аттини13А сделать простой таймер на 4-5 минут для подсчёта моточасов/мотоминут работы ДВС в авто и автовключения вентилятора печки через 5 минут после запуска ДВС:
Алгоритм такой:
1) если U>13.5В = считать моточасы/минуты из ЕПРОМ + начать плюсовать текущее время к ним.
2) если U>13.5В больше 4 минут, то включить реле нормальноразомкнутое (твёрдотельное), которое подаст +14,5 В на вентилятор первой скорости печки.
3) если стало U<13.5В (выключили зажигание) = записать моточасы в ЕПРОМ (для обеспечения питания attiny13а после стабилизатора на 5В поставлю конденсатор на 120мкФ, думаю накомленной в нём энергии хватит на время которое нужно для записи последнего значения МОТОВРЕМЕНИ в ЕПРОМ.
4) если нажата кнопка(по моточасам поменял масло и надо заново считать), то сбросить счётчик времени в ЕПРОМ
Сигнализация текущего состояния счётчика времени = на двух светодиодах:
1) зелёный МИГАЕТ, красный НЕ горит - больше 100 часов
2) зелёный горит, красный НЕ горит - больше 125 часов
3) зелёный горит, красный МИГАЕТ - больше 150 часов
4) зелёные горит, красный горит - больше 175 часов
5) зеленый МИГАЕТ, красный МИГАЕТ - больше 200 часов.
6) зелёный МИГАЕТ часто, красный МИГАЕТ часто - больше 225 часов
Для определения <> 13,5В в сети авто планирую использовать делитель на резисторах, напряжение с него - около 3,5В измерять на Тиньке и если напряжение упало - меньше рассчётного = делать запись мотовремени в ЕПРОМ.
Attiny13 стоит 30р, Arduino Pro Mini 130р. Разница 100р, примерно кружка пива. Вопрос экономии эл.энергии не стоИт. Брать про мини и действовать, хоть с диодом, хоть с экраном, хоть со звонком.
Переходи на OLED (см. пост #855), это экономичнее и нагляднее, чем два светодиода. :)
Digispark (Attiny85) жрет в спящем режиме 4,8 мА, в активном режиме и со включенным OLED-дисплеем кушает 19,8 мА.
ProMini потребляет в спящем режиме 3,03 мА, в активном режиме и со включенным OLED-дисплеем кушает 16,7 мА.
Два светодиода (без учета потребления МК) кушают 30 мА.
Кстати для любителей экономи - жк дисплеи по типу нокия 5110 без подсветки кушают не больше 5 миллиампер :) Есть дисплеи вобще с микроамперным потреблением..
Я LED за 80 руб заказал такой TM1637, пишут что 80мА в активном режиме максимум кушает.
================
Нашёл решение с "временным" питанием для записи данных в ЕПРОМ - подключить питание МК к освещения салона авто - она обесточивается через несколько минут после отключения зажигания авто..
В бардачке такой же светильник, самообесточивающийся - к нему и подключу МК.
Теперь пофиг на милиамперы - МК всё запишет в епром и обесточится потом, при включении зажигания МК считает из Епром и все дела.
Сигналка GSM кушает, подозреваю, что 30-40мА и OBD2 мультитроникс UX-7 в покое кушает 5-10мА вроде...
Не вижу смысла на постоянку гонять МК, если можно записать в ЕПРОМ данные о моточасах.
Одна поездка = одна перезапись ЕПРОМ, ресурс кажется 10 тыс перезаписей...
Исходя из того, что нашёл место постотключения питания в авто - то будут мини-про 168ую ставить на таймер и счётчик моточасов, с индикацией на TM1637..
Сигналка GSM кушает, подозреваю, что 30-40мА и OBD2 мультитроникс UX-7 в покое кушает 5-10мА вроде...
Не вижу смысла на постоянку гонять МК, если можно записать в ЕПРОМ данные о моточасах.
Одна поездка = одна перезапись ЕПРОМ, ресурс кажется 10 тыс перезаписей...
Исходя из того, что нашёл место постотключения питания в авто - то будут мини-про 168ую ставить на таймер и счётчик моточасов, с индикацией на TM1637..
Сорри за офтоп
В епром моточасы нужно писать чтоб уберечь данные от зависания или потери питания, если ваш МК зависнет или пропадет питание то запись о моточасах останется и вы не забудуте сменить масло.Чтоб на дольше его хватило имеет смысл для записи использовать все ячейки поочередно, так износ распределится на все ячейки.
Что касается енерго потребления то это не ваш случай, я понимаю когда чел от литиевой таблетки собирается 5лет питать датчик на тини13.
Но ваш кислотник имеет саморазряд даже без нагрузки и проверенно он даже не почувствует разницу между тини13 и ардуино pro mini.
Так что делайте на том контроллере с которым работать умеете, не гонитесь за тини13 без уарта ее сложно отлаживать и внутренний тактовый генератор у нее от температуры очень пляшет-будут у вас момто-часы "НА-ГЛАЗ))"
--И чтоб сэкономить на дислее но не потерять в наглядности полученных данных пустите все свободные ноги контроллера на светодиоды и по мере подхода к времени "Х" они будут по одному загораться или тухнуть и наглядно очень и дешевле дисплея в 10раз.
Вот проектик хотелось бы замутить. Все бы хорошо. Но проскакивает глюк в нем и не как не могу понять вчем же дело. И вертуально этот глюк проскакивает и в железе.
А глюки разные. По началу были с кнопкой sb3( эта кнопка иметация датчика тока) при нажатие ее все перестовало работать не рягировала больше не на одну кнопку. поставил delay() вроде глюк пропал. но появился другой при удержание кнопки sb1 или sb2 нажимаешь на sb3 свето диоды гаснут, но не всегда могут зажеться оба и перестать рягировать на на жатие кнопок. Петание передернишь опять начинает работать.
МОже кто нибудь сможет мне помочь в этой биде. Бьюсь уже 2 неделю не как не могу понять вчем тут дело.
int Butt = PB4;// кнопка
int Curr = PB2;// переключение тока
int OnLi = PB1;// включение LI-Io
int OnNi = PB0;// включение Ni-Mh
int Sel = PB3;// порт разрешения считывания состояний кнопки
int regim=1;
int flag=0;
void setup() {
pinMode(Curr, OUTPUT);
pinMode(OnLi, OUTPUT);
pinMode(OnNi, OUTPUT);
pinMode(Butt, INPUT);
pinMode(Sel, INPUT);
}
void loop() {
if(digitalRead(PB4)==LOW&&flag==0&&(digitalRead(PB3)==LOW))//если кнопка нажата, на РВ3 лог 0 и переменная flag равна 0
{
regim++;
flag=1;
if(regim>4)//количество режимов
{
regim=1;//переключать режимы будем циклично
}
}
if(digitalRead(PB4)==HIGH&&flag==1)//если кнопка НЕ нажата и переменная flag равна - 1
{
flag=0;//обнуляем переменную
}
if(regim==1)//первый режим
{
digitalWrite(Curr, LOW);// ток "MIN"
digitalWrite(OnLi, HIGH);// запрет Li-IO
digitalWrite(OnNi, LOW);// выбран Ni-Mh
}
if(regim==2)//второй режим
{
digitalWrite(Curr, HIGH);// ток "MAX"
digitalWrite(OnLi, HIGH);// запрет Li-IO
digitalWrite(OnNi, LOW);// выбран Ni-Mh
}
if(regim==3)//третий режим
{
digitalWrite(Curr, LOW);// ток "MIN"
digitalWrite(OnLi, LOW);// выбран Li-IO
digitalWrite(OnNi, HIGH);// запрет Ni-Mh
}
if(regim==4)//четвертый режим
{
digitalWrite(Curr, HIGH);// ток "MAX"
digitalWrite(OnLi, LOW);// выбран Li-IO
digitalWrite(OnNi, HIGH);// запрет Ni-Mh
}
}
проблема в следующем:
когда на порту РВ3 лог 0 - всё работатет как надо, но как только проводок отцепляю, то на выходах(РВ0-В2) появляются наводки и на этих портах паразитные сигналы.
как побороть этот ненужный феномен?
что интересно, заливал программу в Ардуино, так там всё как надо работало.
когда РВ3 на общем(лог 0) то всё как надо переключает.
но как только отрываю от общего и замыкаю на +5В, то РВ0-РВ2 в каком-то среднем состоянии и происходит переключение, а не остаётся предыдущее состояние о_О
когда РВ3 на общем(лог 0) то всё как надо переключает.
но как только отрываю от общего и замыкаю на +5В, то РВ0-РВ2 в каком-то среднем состоянии и происходит переключение, а не остаётся предыдущее состояние о_О
Jeka_M, думаю что проблема в программе, а не обращениях к портам.
Видать где-то надо прописать состояние портов при лог 1 на РВ3.
но вот где?
bodriy2014, так именно по кругу и происходит перебор.
мне нужно что б при лог 0 на РВ3 кнопки изменяла состояния портов, а при лог 1 кнопка не могла изменить состояние портов и оно оставалось бы таким, каким было на момент прихода лог 1.
bodriy2014, так именно по кругу и происходит перебор.
мне нужно что б при лог 0 на РВ3 кнопки изменяла состояния портов, а при лог 1 кнопка не могла изменить состояние портов и оно оставалось бы таким, каким было на момент прихода лог 1.
В моем понимании по кругу выглядит проще))
Если не почините вечером могу набросать, счас еду.
Jeka_M, думаю что проблема в программе, а не обращениях к портам.
Согласен. Это был совет, как более эффективно экономить память, которой у ATtiny13A не так много. Хоть у Вас программа и небольшая, лучше учиться сразу.
но мне не понятно что означают применённые операторы: я вижу что они тождественны моей записи, но значки "|", "&", "~"в данном контексте как китайская грамота для меня =)
bodriy2014 пишет:
В моем понимании по кругу выглядит проще))
Если не почините вечером могу набросать, счас еду.
и не сомневаюсь! )))))) но тут и с таким вариантом засада получилась.
но мне не понятно что означают применённые операторы: я вижу что они тождественны моей записи, но значки "|", "&", "~"в данном контексте как китайская грамота для меня =)
Это битовые операции.
| - OR - ИЛИ, & - AND - И, << - битовый сдвиг влево, ~ - инверсия.
мне нужно что б при лог 0 на РВ3 кнопки изменяла состояния портов, а при лог 1 кнопка не могла изменить состояние портов и оно оставалось бы таким, каким было на момент прихода лог 1.
Набросал на смартфоне, проверить не где, по твоим условиям.
#define Butt PB4 // кнопка
#define Curr PB2 // переключение тока
#define OnLi PB1 // включение LI-Io
#define OnNi PB0 // включение Ni-Mh
#define Sel PB3 // порт разрешения считывания состояний кнопки
byte regim=1;
void setup() {
pinMode(Curr, OUTPUT);
pinMode(OnLi, OUTPUT);
pinMode(OnNi, OUTPUT);
pinMode(Butt, INPUT);
pinMode(Sel, INPUT);
}
void loop() {
if(digitalRead(Sel)==LOW){//если лог 0 тогда можно перебирать режимы
if(digitalRead(Butt)==HIGH){
delay(5); //дребезг защите можно убрать
regim++;
if(regim==5){regim=1;}//ограничение количества режимов
}
}
//то что ниже не трогал
if(regim==1)//первый режим
{
digitalWrite(Curr, LOW);// ток "MIN"
digitalWrite(OnLi, HIGH);// запрет Li-IO
digitalWrite(OnNi, LOW);// выбран Ni-Mh
}
if(regim==2)//второй режим
{
digitalWrite(Curr, HIGH);// ток "MAX"
digitalWrite(OnLi, HIGH);// запрет Li-IO
digitalWrite(OnNi, LOW);// выбран Ni-Mh
}
if(regim==3)//третий режим
{
digitalWrite(Curr, LOW);// ток "MIN"
digitalWrite(OnLi, LOW);// выбран Li-IO
digitalWrite(OnNi, HIGH);// запрет Ni-Mh
}
if(regim==4)//четвертый режим
{
digitalWrite(Curr, HIGH);// ток "MAX"
digitalWrite(OnLi, LOW);// выбран Li-IO
digitalWrite(OnNi, HIGH);// запрет Ni-Mh
}
}
HWman Спасибо за обновление инфы!
HWman Спасибо за обновление инфы!
Да как-то подзабил на это, давно сюда не заходил.
Привет, коллеги. Я чайник :)
Хочу на Аттини13А сделать простой таймер на 4-5 минут для подсчёта моточасов/мотоминут работы ДВС в авто и автовключения вентилятора печки через 5 минут после запуска ДВС:
Алгоритм такой:
1) если U>13.5В = считать моточасы/минуты из ЕПРОМ + начать плюсовать текущее время к ним.
2) если U>13.5В больше 4 минут, то включить реле нормальноразомкнутое (твёрдотельное), которое подаст +14,5 В на вентилятор первой скорости печки.
3) если стало U<13.5В (выключили зажигание) = записать моточасы в ЕПРОМ (для обеспечения питания attiny13а после стабилизатора на 5В поставлю конденсатор на 120мкФ, думаю накомленной в нём энергии хватит на время которое нужно для записи последнего значения МОТОВРЕМЕНИ в ЕПРОМ.
4) если нажата кнопка(по моточасам поменял масло и надо заново считать), то сбросить счётчик времени в ЕПРОМ
Сигнализация текущего состояния счётчика времени = на двух светодиодах:
1) зелёный МИГАЕТ, красный НЕ горит - больше 100 часов
2) зелёный горит, красный НЕ горит - больше 125 часов
3) зелёный горит, красный МИГАЕТ - больше 150 часов
4) зелёные горит, красный горит - больше 175 часов
5) зеленый МИГАЕТ, красный МИГАЕТ - больше 200 часов.
6) зелёный МИГАЕТ часто, красный МИГАЕТ часто - больше 225 часов
Для определения <> 13,5В в сети авто планирую использовать делитель на резисторах, напряжение с него - около 3,5В измерять на Тиньке и если напряжение упало - меньше рассчётного = делать запись мотовремени в ЕПРОМ.
моя бы сделала на Attiny85 и OLED 0.96. Выглядит лучше и возможностей больше (вывод напряжения + пробега + часов + температуры + сообщений о замене.
Так ведь нагляднее, чем помнить сочетание светодиодов? :)
Почти бортовой компьютьер размером 30х30х12 мм (вместе с МК).
Привет, коллеги. Я чайник :)
Хочу на Аттини13А сделать простой таймер....
Привет.Ног хватает
1-светодиод
2-светодиод
3-реле вентилятора
4-кнопка
5-напряжение сети.
Возможно и памяти хватит.
Для таких постов есть ветка.
Attiny13 стоит 30р, Arduino Pro Mini 130р. Разница 100р, примерно кружка пива. Вопрос экономии эл.энергии не стоИт. Брать про мини и действовать, хоть с диодом, хоть с экраном, хоть со звонком.
=============
коллеги, вопрос.
собрал девайс применив лично написаную мега-супер-пупер программу (пост 847).
при загрузке через ИДЕ указал частоту 128 кГц.
но светодиоды светят тускло, хотя резисторы на цифровых ногах должны обеспечивать ток через светодиоды в 20мА, а там и 1 мА нет.
как вроде ШИМ какой-то на выходе вместо логической 1. может я, случайно в коде включил чего-то не того?
ставить транзисторы в качестве ключей конечно выход, но это переделывать довольно напичканую плату.
Открой строки 16,18,20 и будет тебе счастье.
karl2233.Привет.
Вот подправил по своему, проверил на своей макетке все работет и сигнализтрует
370 bytes
Сам разобрался
bodriy2014, привет и спасибо!
как понимаю, в моём варианте МК всё время фигачил по ножкам как пианист, поэтому и светили тускло, ибо получался ШИМ.
а ты применил секретные(мне по крайней мере для меня) письмена =)
тебе не сложно прокомментировать 12-13-14 строки? а то я как та собака: смысл понимаю, но сказать не могу=)
ещё раз - спасибо!
Zahar, поясни, плз, мысль. ихь бин нихт ферштеен ))
bodriy2014, привет и спасибо!
как понимаю, в моём варианте МК всё время фигачил по ножкам как пианист, поэтому и светили тускло, ибо получался ШИМ.
а ты применил секретные(мне по крайней мере для меня) письмена =)
тебе не сложно прокомментировать 12-13-14 строки? а то я как та собака: смысл понимаю, но сказать не могу=)
ещё раз - спасибо!
Zahar, поясни, плз, мысль. ихь бин нихт ферштеен ))
Ничего просто так ни откуда не берется, и знания тоже.
Чтоб понять эти письмена нужно ветку с начала прочесть, в первых постах все есть.
Я многое знал но когда на форум пришел прочел.
Коментирую
PORTB |= (1<<0); //ставит HIGH на PB0--Заменяет digitalWrite(PB0,HIGH);
PORTB &= ~(1<<1);//ставит LOW на PB1--Заменяет digitalWrite(PB1,LOW);
PORTB &= ~(1<<2);//ставит LOWна PB2--Заменяет digitalWrite(PB2,LOW);
Поясняю :)
Ты закоментировал эти строки. Зачем, почему?
Ты эти ножки, используеш как три ДИГИТАЛЬНЫХ вывода, значит в setup их надо обьявить.
Иначе МК не понимает что это выход и сигнал проходит не через выходной транзистор а через логику, поэтому не хватает тока.
bodriy2014, спасибо! буду тщательнее курить информацию.
zahar, спасибо! получается я Великий Кукурузо, но невнимательный =)
Привет, коллеги. Я чайник :)
Хочу на Аттини13А сделать простой таймер....
Привет.Ног хватает
1-светодиод
2-светодиод
3-реле вентилятора
4-кнопка
5-напряжение сети.
Возможно и памяти хватит.
Для таких постов есть ветка.
Спасибо!!
По причини МИЗЕРНОГО энергопотребления Тиньки 13а хочу именно на ней собрать таймер - то есть она может работать в авто постоянно от аккумулятора.
Attiny 85 примерно столько же электричества потребляет? Если с обвязкой минимальной и стабиком 78L05(фото приложил)...
1) Не надо будет записывать в ЕПРОМ значение МОТОЧАСА каждый раз при выключении питания.
2) Тинька сможет обесточивать то, что мне надо после отключения питания.
Один светодиод я могу исключить = если через delay сделать мигание:
почтоянно горит/очень редко мигает/средне/часто/ = 4 состояния хватит для 175/150/125/100 моточасов.
1-светодиод
2-реле вентилятора
3-кнопка (сбрасываем счётчик поточасов в ноль)
4-напряжение сети.(отслеживаем что оно больше чем 13.5 В)
78l05, если не ошибаюсь, жрёт около 19мА постоянно. Выкидывайте его нахрен. Импульсные DC-DC - наш всё!
P.S. Тут уж лучше свою плату развести, чем дигиспарк юзать)
Переходи на OLED (см. пост #855), это экономичнее и нагляднее, чем два светодиода. :)
Digispark (Attiny85) жрет в спящем режиме 4,8 мА, в активном режиме и со включенным OLED-дисплеем кушает 19,8 мА.
ProMini потребляет в спящем режиме 3,03 мА, в активном режиме и со включенным OLED-дисплеем кушает 16,7 мА.
Два светодиода (без учета потребления МК) кушают 30 мА.
Кстати для любителей экономи - жк дисплеи по типу нокия 5110 без подсветки кушают не больше 5 миллиампер :) Есть дисплеи вобще с микроамперным потреблением..
Олед 300 руб :)
Я LED за 80 руб заказал такой TM1637, пишут что 80мА в активном режиме максимум кушает.
================
Нашёл решение с "временным" питанием для записи данных в ЕПРОМ - подключить питание МК к освещения салона авто - она обесточивается через несколько минут после отключения зажигания авто..
В бардачке такой же светильник, самообесточивающийся - к нему и подключу МК.
Теперь пофиг на милиамперы - МК всё запишет в епром и обесточится потом, при включении зажигания МК считает из Епром и все дела.
lohtin Привет!
Какой АКБ стоит на устройстве для учета моточасов?
В машину буду ставить :) 12в, 70 Ач...
Сигналка GSM кушает, подозреваю, что 30-40мА и OBD2 мультитроникс UX-7 в покое кушает 5-10мА вроде...
Не вижу смысла на постоянку гонять МК, если можно записать в ЕПРОМ данные о моточасах.
Одна поездка = одна перезапись ЕПРОМ, ресурс кажется 10 тыс перезаписей...
Исходя из того, что нашёл место постотключения питания в авто - то будут мини-про 168ую ставить на таймер и счётчик моточасов, с индикацией на TM1637..
Сорри за офтоп
Китайские GSM до 2А едят в пике. Так, на всякий случай.
В машину буду ставить :) 12в, 70 Ач...
Сигналка GSM кушает, подозреваю, что 30-40мА и OBD2 мультитроникс UX-7 в покое кушает 5-10мА вроде...
Не вижу смысла на постоянку гонять МК, если можно записать в ЕПРОМ данные о моточасах.
Одна поездка = одна перезапись ЕПРОМ, ресурс кажется 10 тыс перезаписей...
Исходя из того, что нашёл место постотключения питания в авто - то будут мини-про 168ую ставить на таймер и счётчик моточасов, с индикацией на TM1637..
Сорри за офтоп
В епром моточасы нужно писать чтоб уберечь данные от зависания или потери питания, если ваш МК зависнет или пропадет питание то запись о моточасах останется и вы не забудуте сменить масло.Чтоб на дольше его хватило имеет смысл для записи использовать все ячейки поочередно, так износ распределится на все ячейки.
Что касается енерго потребления то это не ваш случай, я понимаю когда чел от литиевой таблетки собирается 5лет питать датчик на тини13.
Но ваш кислотник имеет саморазряд даже без нагрузки и проверенно он даже не почувствует разницу между тини13 и ардуино pro mini.
Так что делайте на том контроллере с которым работать умеете, не гонитесь за тини13 без уарта ее сложно отлаживать и внутренний тактовый генератор у нее от температуры очень пляшет-будут у вас момто-часы "НА-ГЛАЗ))"
--И чтоб сэкономить на дислее но не потерять в наглядности полученных данных пустите все свободные ноги контроллера на светодиоды и по мере подхода к времени "Х" они будут по одному загораться или тухнуть и наглядно очень и дешевле дисплея в 10раз.
Доброго всем времени.
Вот проектик хотелось бы замутить. Все бы хорошо. Но проскакивает глюк в нем и не как не могу понять вчем же дело. И вертуально этот глюк проскакивает и в железе.
Вот схемка
это код к ней
А глюки разные. По началу были с кнопкой sb3( эта кнопка иметация датчика тока) при нажатие ее все перестовало работать не рягировала больше не на одну кнопку. поставил delay() вроде глюк пропал. но появился другой при удержание кнопки sb1 или sb2 нажимаешь на sb3 свето диоды гаснут, но не всегда могут зажеться оба и перестать рягировать на на жатие кнопок. Петание передернишь опять начинает работать.
МОже кто нибудь сможет мне помочь в этой биде. Бьюсь уже 2 неделю не как не могу понять вчем тут дело.
Зарание всем спасибо.
Господа, никто не подскажет где можно увидеть код для управления электронным регулятором M62429 или подобным?
Я в упор не понимаю как эти протоколы описывать :(
upd.: Долго искал и ничего не мог найти. Пошел путем codesearch и нашел готовую ардуиновскую библиотеку, так что вопрос снят.
Arduino Library for the NEC/Renesas M62429 Digital Volume Control
камерады, прошу не расходится=)
нужна помощь.
проблема в следующем:
когда на порту РВ3 лог 0 - всё работатет как надо, но как только проводок отцепляю, то на выходах(РВ0-В2) появляются наводки и на этих портах паразитные сигналы.
как побороть этот ненужный феномен?
что интересно, заливал программу в Ардуино, так там всё как надо работало.
Подтяжки нужны на PB3, PB4
на РВ4 стоит.
на РВ3 ставил и на плюс и на минус -толку ноль. как только РВ3 отрываю от общего, то РВ0-РВ2 какбы полуоткрыты.
и при заливке в Ардуино порт РВ3 и без подтяжек работает как надо.
а тут не алё (((
karl2233 Ресет к VCC подтянули?
да, стоит 10к
когда РВ3 на общем(лог 0) то всё как надо переключает.
но как только отрываю от общего и замыкаю на +5В, то РВ0-РВ2 в каком-то среднем состоянии и происходит переключение, а не остаётся предыдущее состояние о_О
да, стоит 10к
когда РВ3 на общем(лог 0) то всё как надо переключает.
но как только отрываю от общего и замыкаю на +5В, то РВ0-РВ2 в каком-то среднем состоянии и происходит переключение, а не остаётся предыдущее состояние о_О
замени это безобразие
везде
так попробуй
всё равно - как только на РВ3 не лог 0, то фигня получается (((((
что-то я с разрешением считывания показаний кнопки (порт РВ3) намудрил.
всё равно - как только на РВ3 не лог 0, то фигня получается (((((
что-то я с разрешением считывания показаний кнопки (порт РВ3) намудрил.
Подтяжки все есть, порты тоже правьльно-значит логика.
переделывай-упрощай.
И вот это всё безобразие:
заменить на прямую работу с портами:
Остальные режимы сами перепишите.
Может просто кнопкой режимы перебирать, по кругу?
Jeka_M, думаю что проблема в программе, а не обращениях к портам.
Видать где-то надо прописать состояние портов при лог 1 на РВ3.
но вот где?
bodriy2014, так именно по кругу и происходит перебор.
мне нужно что б при лог 0 на РВ3 кнопки изменяла состояния портов, а при лог 1 кнопка не могла изменить состояние портов и оно оставалось бы таким, каким было на момент прихода лог 1.
Походу проблема в том, что вместо PB0-PB4 надо указывать ноги дуины A0-A7, B0-B13
Andy, в Ардуино код работает как надо.
но при заливке в Тини13 начинаются траблы о_О
проблема в том, что программа не понимает что делать при состоянии РВ3 отличном от лог 0.
я так думаю(с)
надо что-то вроде такого
но что дальше делать - хз
....
bodriy2014, так именно по кругу и происходит перебор.
мне нужно что б при лог 0 на РВ3 кнопки изменяла состояния портов, а при лог 1 кнопка не могла изменить состояние портов и оно оставалось бы таким, каким было на момент прихода лог 1.
В моем понимании по кругу выглядит проще))
Если не почините вечером могу набросать, счас еду.
Jeka_M, думаю что проблема в программе, а не обращениях к портам.
Согласен. Это был совет, как более эффективно экономить память, которой у ATtiny13A не так много. Хоть у Вас программа и небольшая, лучше учиться сразу.
Jeka_M, да, я это понял. спасибо!
но мне не понятно что означают применённые операторы: я вижу что они тождественны моей записи, но значки "|", "&", "~"в данном контексте как китайская грамота для меня =)
В моем понимании по кругу выглядит проще))
Если не почините вечером могу набросать, счас еду.
и не сомневаюсь! )))))) но тут и с таким вариантом засада получилась.
спасибо!
но мне не понятно что означают применённые операторы: я вижу что они тождественны моей записи, но значки "|", "&", "~"в данном контексте как китайская грамота для меня =)
Это битовые операции.
| - OR - ИЛИ, & - AND - И, << - битовый сдвиг влево, ~ - инверсия.
http://arduino.ru/forum/programmirovanie/bitovye-operatsii
https://www.youtube.com/watch?v=IUBQqY5yX24&index=2&list=PLBLtydguylgDUt...
https://www.youtube.com/watch?v=hKdNUO7Zmjg&index=7&list=PLBLtydguylgDUt...
....
мне нужно что б при лог 0 на РВ3 кнопки изменяла состояния портов, а при лог 1 кнопка не могла изменить состояние портов и оно оставалось бы таким, каким было на момент прихода лог 1.
Набросал на смартфоне, проверить не где, по твоим условиям.
Вариант два
Занес режимы в условие, чтоб передергивать ножки только по нажатию.
неа... первый работает хуже чем мой скетч - при лог 0 на РВ3 на портах РВ0-РВ2 есть хаотические сигналы... а при лог 1 на РВ3 кнопка опрашивается.
второй щас проверю... нет, не работатет - на портах РВ0-РВ2 хаотические сигналы при нажатии.
думаю что надо в мой скетч(он хоть при лог 0 на РВ3 работает как надо) ввести условие else(digitalRead(Sel)==HIGH);//если на РВ3 лог 1 то...
ведь проблема именно в том, что когда лог 1 на РВ3 то программа глючит.
но как сказать МК что при лог 1 на РВ3 кнопку НЕ опрашивать и состояние портов НЕ изменять?
неа... первый работает хуже чем мой скетч - при лог 0 на РВ3 на портах РВ0-РВ2 есть хаотические сигналы... а при лог 1 на РВ3 кнопка опрашивается.
второй щас проверю... нет, не работатет - на портах РВ0-РВ2 хаотические сигналы при нажатии.
думаю что надо в мой скетч(он хоть при лог 0 на РВ3 работает как надо) ввести условие else(digitalRead(Sel)==HIGH);//если на РВ3 лог 1 то...
ведь проблема именно в том, что когда лог 1 на РВ3 то программа глючит.
но как сказать МК что при лог 1 на РВ3 кнопку НЕ опрашивать и состояние портов НЕ изменять?
странно!(
схему в студию
вот схема. эьто я зарядно-разрядно для ЛиИо и НиМг делаю на Атмеге 8
узел на Тини13 нужен для выбора типа батареи и изменения тока зарядки.
вот схема. эьто я зарядно-разрядно для ЛиИо и НиМг делаю на Атмеге 8
узел на Тини13 нужен для выбора типа батареи и изменения тока зарядки.
PB3 не подтянуто к VCC
подтяни програмно
да я цеплял резистор, а программно не получается - пишет "was not declared in scope"