Забыл еще одно условие: когда маятник отводится до предела, то замыкается на контакт и прибор весело мигает всеми лазерами сигнализируя о том, что маятник превысел предел отклонения. Маятник получается +, замыкается на порт.
я что-то вас перестаю понимать. Сначала были лазеры, потом индикаторные диоды. потом добавился контроль батарейки... теперь еще и маятник?
В итоге я так и не понял - вы код на железе пробовали? Режимы переключаются? Кнопки не залипают? Частота правильная?
Конечно попробовал. Кнопки не залипают. Режимы переключаются. Частота ровно 10 кГц со скважностью 50%.
Про лазеры, сигнальные диоды и контроль батарейки- все в шапке писал))). Просто сигнальные диоды у меня как то легко получается добавить самому в код Alexey_rem. А в последнем скетче он сам добавил их.
А про маятник забыл просто. Но это уже ладно. Вы и так помогли круто.
Сейчас тестировал sens. Получается при питании 4v, sens начинает мигать при 1.89v. Выставил примерно 2v на sens при пит 4v. А если понижать питание, то видимо смещается и sens, так как даже при питании 3.3v на sens уже почти 1.5v и диод не мигает.
Контроллер питается прямо от батарейки или через какой-то стабилизатор,?Думаю при понижении питания смещается и уровень лог единицы очевидно схема со стабилитроном поможет
Стабилитрона нет пока. На плате стоит похоже такой делитель: диод и резюк 1кОм, на нем от 4v - 0.650v до 3.3v - 0.640v примерно было. Какой то маленький диапазон для измерения)
Сейчас тестировал sens. Получается при питании 4v, sens начинает мигать при 1.89v. Выставил примерно 2v на sens при пит 4v. А если понижать питание, то видимо смещается и sens, так как даже при питании 3.3v на sens уже почти 1.5v и диод не мигает.
rastaman29 - По умолчанию analogRead() в ардуино измеряет ОТНОСИТЕЛЬНО ПИТАНИЯ, поэтому просто так измерить им VCC той ардуиной, что сама от него питается - нельзя, будет всегда примерно максимум ADC
Для этого используется другая схема - на контроллере есть референсный уровень 1.1в. С помощью analogRead() измеряют этот референс относительно питания - и зная что он 1.1в - пересчитывают напряжение VCC.
Ищите код поиском по запросу "измерение напряжения питания ардуино"
rastaman29 - По умолчанию analogRead() в ардуино измеряет ОТНОСИТЕЛЬНО ПИТАНИЯ, поэтому просто так измерить им VCC той ардуиной, что сама от него питается - нельзя, будет всегда примерно максимум ADC
Так а где вы видели в коде analogRead? Они пытаются измерять напряжение с помощью digitalRead
if(digitalRead(volt_sence)) //мигаем если сели батарейки
Только если включить импульсный режим, сигнальный светодиод разряда начинаем мигать с разным интервалом) и мигает даже при питании 3.6V изредка. И стабильно начинает мигать при снижении питания до 3.2v. Так же снизилась частота имп.режима и стабильно 10 кГц не делается.
Так же снизилась частота имп.режима и стабильно 10 кГц не делается.
потому что идея генератора за счет быстрых оборотов ЛУП работает только на относительно низких частотах. Чем больше вы наталкиваете в ЛУП дополнительных строчек - тем медленее он у вас крутится
Делайте на таймере, как в моем коде - получите точно 10кГц и от числа строчек в ЛУП зависеть не будет
Забыл еще одно условие: когда маятник отводится до предела, то замыкается на контакт и прибор весело мигает всеми лазерами сигнализируя о том, что маятник превысел предел отклонения. Маятник получается +, замыкается на порт.
я что-то вас перестаю понимать. Сначала были лазеры, потом индикаторные диоды. потом добавился контроль батарейки... теперь еще и маятник?
В итоге я так и не понял - вы код на железе пробовали? Режимы переключаются? Кнопки не залипают? Частота правильная?
Это как в анекдоте: дайте водицы испить, а то так кушать хочется, что переночевать негде ))))))
Конечно попробовал. Кнопки не залипают. Режимы переключаются. Частота ровно 10 кГц со скважностью 50%.
Про лазеры, сигнальные диоды и контроль батарейки- все в шапке писал))). Просто сигнальные диоды у меня как то легко получается добавить самому в код Alexey_rem. А в последнем скетче он сам добавил их.
А про маятник забыл просто. Но это уже ладно. Вы и так помогли круто.
Добавил int indicat=0;
Это как в анекдоте: дайте водицы испить, а то так кушать хочется, что переночевать негде ))))))
Именно так)) Потом руку оторву))
Отрывать руку дающую себе дороже
Это поддержать людей, которые так думают, они тоже делают вклад)))
а как лазеры должны включаться? 1->1+2->1+2+3 ?
1>1+2>1+2+3>2+3>1 в идеале
Попрообуй так:
Получилось так 1>1+2>1+2+3>1
Сейчас тестировал sens. Получается при питании 4v, sens начинает мигать при 1.89v. Выставил примерно 2v на sens при пит 4v. А если понижать питание, то видимо смещается и sens, так как даже при питании 3.3v на sens уже почти 1.5v и диод не мигает.
Поставь код который в сообщении была ошибка я ее убрал
Со всеми исправлениями.
Контроллер питается прямо от батарейки или через какой-то стабилизатор,?Думаю при понижении питания смещается и уровень лог единицы очевидно схема со стабилитроном поможет
Контроллер питается напрямую от батарейки. Стабилитрон найду ща.
и еще в строке 66:
вместо
if
(selected<2)
//
Все чётко переключается.
Стабилитрона нет пока. На плате стоит похоже такой делитель: диод и резюк 1кОм, на нем от 4v - 0.650v до 3.3v - 0.640v примерно было. Какой то маленький диапазон для измерения)
Сейчас тестировал sens. Получается при питании 4v, sens начинает мигать при 1.89v. Выставил примерно 2v на sens при пит 4v. А если понижать питание, то видимо смещается и sens, так как даже при питании 3.3v на sens уже почти 1.5v и диод не мигает.
rastaman29 - По умолчанию analogRead() в ардуино измеряет ОТНОСИТЕЛЬНО ПИТАНИЯ, поэтому просто так измерить им VCC той ардуиной, что сама от него питается - нельзя, будет всегда примерно максимум ADC
Для этого используется другая схема - на контроллере есть референсный уровень 1.1в. С помощью analogRead() измеряют этот референс относительно питания - и зная что он 1.1в - пересчитывают напряжение VCC.
Ищите код поиском по запросу "измерение напряжения питания ардуино"
Спасибо. Почитаю.
rastaman29 - По умолчанию analogRead() в ардуино измеряет ОТНОСИТЕЛЬНО ПИТАНИЯ, поэтому просто так измерить им VCC той ардуиной, что сама от него питается - нельзя, будет всегда примерно максимум ADC
Так а где вы видели в коде analogRead? Они пытаются измерять напряжение с помощью digitalRead
Сегодня не получится поэкспериментировать. Забыл на работе всё.
Они пытаются измерять напряжение с помощью digitalRead
Простите, не заметил.
тогда без меня
А как без ошибок)
Вроде получилось заставить мигать диод при падении питания 3.5v и ниже.
Только если включить импульсный режим, сигнальный светодиод разряда начинаем мигать с разным интервалом) и мигает даже при питании 3.6V изредка. И стабильно начинает мигать при снижении питания до 3.2v. Так же снизилась частота имп.режима и стабильно 10 кГц не делается.
Спасибо b707 за наводку.
Так же снизилась частота имп.режима и стабильно 10 кГц не делается.
потому что идея генератора за счет быстрых оборотов ЛУП работает только на относительно низких частотах. Чем больше вы наталкиваете в ЛУП дополнительных строчек - тем медленее он у вас крутится
Делайте на таймере, как в моем коде - получите точно 10кГц и от числа строчек в ЛУП зависеть не будет
Попробую Ваш код. Но у вас сложнее разобраться.