Подключил резистор через беременную вывожу значения все клас. Подключил библиотеку тензодатчика чтоб выводить вес индикатор вес выводит но цифры мерцают не успеваю разогрется. Может контроллер не успевает подсчитывает информацию с датчика усреднять ее и при этом сегменты зажигать ??
а по ТЗ надо проверять датчик каждый loop? конечно будет мерцать, и вообще по правилам хорошо тона на форуме, чтоб получить адекватный ответ, надо свой код выложить
Код выложу завтра. Он у меня на работе а я дома . Датчик осчитывается через lop . Я думаю если использовать две ардуино одну для индикатора вторую для датчика как считаете ?
Код выложу завтра. Он у меня на работе а я дома . Датчик осчитывается через lop . Я думаю если использовать две ардуино одну для индикатора вторую для датчика как считаете ?
я же выше задал вопрос: насколько часто надо опрашивать датчик?
не работает что? тут хрустальные шары запрещены :) как мне догадаться? и что вы поменяли? ну вот совсем лень искать разницу.
ЗЫ. Вот нафига брать мой скетч переделывать если ваш проект в принципе уже работает, надо просто немного мозг напряч и дописать, или вы думаете час посидели над задачей, не получилось, на форуме написал, подсказали, все хорошо, можно отдыхать :)
Полностью Согласен. На то он и программист, что строит свои алгоритмы, и подсмотрит у других. Коль взялся писать сам, mag155 , пусть и пишет. А то сопли тут развели. Есть последовательность действий, вот и пусть реализует.
Да фиг его знает мозги уже ..... К стати пробовал лсд дисплей подключать тоже Моргает. По ходу программа самого тензодатчика работает по принципу есть значение потом нет. Думаю нужно как то запоминать значение и если оно изменилось менять потом опять запоминать?
Да фиг его знает мозги уже ..... К стати пробовал лсд дисплей подключать тоже Моргает. По ходу программа самого тензодатчика работает по принципу есть значение потом нет. Думаю нужно как то запоминать значение и если оно изменилось менять потом опять запоминать?
Вам ведь уже сто раз говорили, используйте Сериал для отладки, а не думу думайте.((((
Сериал смотрел показания миняются с интервалом в пол секунду соответственно и индикатор моргает также. Такое впечатление что код просто замирает на пол секунды.
Всем привет!!! Вопрос машинка на блютуз с регулировкой скорости проблема в том что команды перебивают друг друга. Как можно разделять полученные данные по своим переменным ? Или как лучше это реализовать ?
Делаем условие: IF ( если пришло - > пишем в строку (один символ) -> плюсуем второй символ и т.д. Тут же if( если пришел символ закрытия "типа !" то плюсуем к строке и закрываем цикл) ) и так по кругу.
ДАЛЕЕ: если прилетевшее слово == "вперед", тогда переменная в перед - str i12asdf = ЗНАЧЕНИЕ
12asdf - это прямо? а значение 3 - тогда вид будет -> 12asdf /3!
или проше, прями - 123! если прилитело 123 - тогда 12asdf =1;Ну или как у Вас.
Не могу найти кода своего. на С++ найдите как собрать строку "работа со строками", а в конце, типа "!". что будет указывать , что новая переменная прилитела
Не так. Команда в перед с устройства, что управляет. Это просто команда. Можно дать и "1" - "9","0". 10 команд. Я же не знаю, какая команда и можите ли Вы ее назначить, указывает условие. По русски, команда в перед как "***" слово из мата.
Пусть при нажатии на кнопку "вперед", у вас по передается "1" и при постоянной передаче "1", алгоритм выставляет выходной пин = HI (логической 1) и так длится скажем 5с, если кнопка отпущена -> в порт дается "" - ничего, то таймер отсчитав 5с, сбросит последнее условие в =LO (логический 0)
Всем привет с блютузом разобрался разбиваем данные по ячейкам массива и потом работаем отдельно с каждой. Решил вернутся к теме дисплея . И пришла мне идея подключить ардуино в качестве контроллера 4 разрядного индикатора без здвигового регистра. И по rx передавать данные с другой ардуины ну или с того же блютуз. Как писал выше проблемка в том что сигменты мерцают и не горят стабильно если выводим данные на них с переменной . В выводе информации индикатор только пытаюсь разобратся так что прошу помощи?
а по ТЗ надо проверять датчик каждый loop? конечно будет мерцать, и вообще по правилам хорошо тона на форуме, чтоб получить адекватный ответ, надо свой код выложить
??? Не засну
Код выложу завтра. Он у меня на работе а я дома . Датчик осчитывается через lop . Я думаю если использовать две ардуино одну для индикатора вторую для датчика как считаете ?
я же выше задал вопрос: насколько часто надо опрашивать датчик?
Датчик опрашивается каждый цикл lop.
То есть он лайн измерение веса должно получатся.
онлайн понятие относительное есть секунда, есть минута, но несколько миллисекунд - это перебор :) не реактивный же самолет
Согласен. Предлагаете условия типа счетчик мерить через какое-то количество циклов ? Или через промежуток времени.?
я ничего не предлагаю, я спрашиваю - какое адекватное (реально нужное) минимальное время необходимо для опроса датчика?
Раз в пол секунды
Максимум раз в секунду
подсчет пауз в loop методом остатка от деления медленно и ненадежно - могут быть пропуски - переходите на миллис
digitalWrite в разы замедляет вывод в дисплей, переходите на прямой вывод в порт
http://codius.ru/articles/%D0%A2%D1%8E%D0%BD%D0%B8%D0%BD%D0%B3_Arduino_%...
Можно примерчик а то как- то мне пока сложновато ?
я же выкладывал в сообщении #169
а по таймерам millis примеров очень много
http://arduino.ru/forum/programmirovanie/velikoe-perepolnenie-millis#com...
Изменил ваш скетч под общий катод
Не работает
Не работает
бывает.......
не работает что? тут хрустальные шары запрещены :) как мне догадаться? и что вы поменяли? ну вот совсем лень искать разницу.
ЗЫ. Вот нафига брать мой скетч переделывать если ваш проект в принципе уже работает, надо просто немного мозг напряч и дописать, или вы думаете час посидели над задачей, не получилось, на форуме написал, подсказали, все хорошо, можно отдыхать :)
Вот нафига брать мой скетч
Полностью Согласен. На то он и программист, что строит свои алгоритмы, и подсмотрит у других. Коль взялся писать сам, mag155 , пусть и пишет. А то сопли тут развели. Есть последовательность действий, вот и пусть реализует.
Да фиг его знает мозги уже ..... К стати пробовал лсд дисплей подключать тоже Моргает. По ходу программа самого тензодатчика работает по принципу есть значение потом нет. Думаю нужно как то запоминать значение и если оно изменилось менять потом опять запоминать?
Вам ведь уже сто раз говорили, используйте Сериал для отладки, а не думу думайте.((((
Сериал смотрел показания миняются с интервалом в пол секунду соответственно и индикатор моргает также. Такое впечатление что код просто замирает на пол секунды.
Всем привет!!! Вопрос машинка на блютуз с регулировкой скорости проблема в том что команды перебивают друг друга. Как можно разделять полученные данные по своим переменным ? Или как лучше это реализовать ?
блютуз - поочередная (последовательная) перередача даных. Сделайте свой протокол.
Принимаем данные и складываем в строку. Где в начале TEG, потом разделитель "/" или любой знак, данные, разделитель, указатель конца команды.
Я так себе делал управление по блютуз.
Ого а примерчик строки если не сложно ?
https://www.youtube.com/watch?v=Ci-5jLGZj3A Подсмотрел тут и немного допилил. Принцип как и СЕРИАЛ RS232 портом, только блютуз. А так все одинаково
Не пойму как записывать в масив
Есть переменная Через сериал приходят цыфры как их сложить в масив ? Напишите пример если не сложно ?
Делаем условие: IF ( если пришло - > пишем в строку (один символ) -> плюсуем второй символ и т.д. Тут же if( если пришел символ закрытия "типа !" то плюсуем к строке и закрываем цикл) ) и так по кругу.
ДАЛЕЕ: если прилетевшее слово == "вперед", тогда переменная в перед - str i12asdf = ЗНАЧЕНИЕ
12asdf - это прямо? а значение 3 - тогда вид будет -> 12asdf /3!
или проше, прями - 123! если прилитело 123 - тогда 12asdf =1;Ну или как у Вас.
Не могу найти кода своего. на С++ найдите как собрать строку "работа со строками", а в конце, типа "!". что будет указывать , что новая переменная прилитела
Если 123 к примеру вперед то когда Шим будет равен 123 она ж поедет вперед?
Не так. Команда в перед с устройства, что управляет. Это просто команда. Можно дать и "1" - "9","0". 10 команд. Я же не знаю, какая команда и можите ли Вы ее назначить, указывает условие. По русски, команда в перед как "***" слово из мата.
Пусть при нажатии на кнопку "вперед", у вас по передается "1" и при постоянной передаче "1", алгоритм выставляет выходной пин = HI (логической 1) и так длится скажем 5с, если кнопка отпущена -> в порт дается "" - ничего, то таймер отсчитав 5с, сбросит последнее условие в =LO (логический 0)
Тему поменяйте, тут динамическую индикацию.
Всем привет с блютузом разобрался разбиваем данные по ячейкам массива и потом работаем отдельно с каждой. Решил вернутся к теме дисплея . И пришла мне идея подключить ардуино в качестве контроллера 4 разрядного индикатора без здвигового регистра. И по rx передавать данные с другой ардуины ну или с того же блютуз. Как писал выше проблемка в том что сигменты мерцают и не горят стабильно если выводим данные на них с переменной . В выводе информации индикатор только пытаюсь разобратся так что прошу помощи?
строка 37 вывод на индикатор
такое ощущение что вы так и не прочитали статью
http://arduino.ru/forum/proekty/vyvod-informatsii-na-4-razryadnyi-7segme...
ну и выше уже писал и ссылки давал как делать периодически запускаемый код через millis
прочитаете - реализуете и будет вам счастье
если уж совсем ленитесь, вот я вам скопировал кусок кода с комментарием из ссылки которая выше
Иначе говоря правильно будет так
01
unsigned
long
currentMillis = 1UL;
02
unsigned
long
previousMillis = 1UL;
03
04
void
setup
() {
05
06
}
07
08
void
loop
() {
09
currentMillis = millis();
10
11
if
( currentMillis - previousMillis >= 500UL ){
12
previousMillis = currentMillis;
13
14
//этот код повторяться каждые 500 мсек
15
16
}
17
18
19
}
Что просто миллис в место делей? И все ? Нет я знаю как работает миллис просто видать не правильно вас понял. Благодарю за подсказку сделаю напишу.
Зделал вот так моргают все сигменты сразу даже если задаю цифру 1 ??? Моргает все сигменты цифрой один получается что счетчик не работает почему ???
не.... вы совсем не то делаете :(
и имел в виду исправить в цикле loop запуск каждые 200 мсек ваши на миллисс и проверку датчиков сделать каждую секунду
процедуру отображения пока не трогайте
Ок буду пробовать.
Зделал вот так но переменная val работает не адекватно даже если на нее не чего не выводить выводит в сериал три ноля (000) в чем может быть причина ?
Вот так работает но значение в сериал выводит с пробелом вот так
125
125
125
Если через сериал подаю значение с другой ардуины работает четко . Вопрос как все таки избавится от delay в 116 строке?
Если через сериал подаю значение с другой ардуины работает четко . Вопрос как все таки избавится от delay в 116 строке?
а где весь код? val где берется?
если смотреть по коду из 233 сообщения,
то торможение в loop цикле еще в строках 37...41, их надо завернуть в условие if serial.available while serilal.available
а то получается есть байт или нет он все равно в монитор порта печатается каждые несколько миллисекунд
и получается при скорости порта 9600 это сильно тормозит
???
Я с
Не совсем понял ??
Э