Обработка данных с цифрового штангенциркуля.
- Войдите на сайт для отправки комментариев
Потребовалось данные, получаемые с цифрового штангенциркуля, отображать на семисегментном индиаторе. Сам протокол данных представляет из себя SPI, только однонаправленный - от штангенциркуля идёт два сигнала: синхронизации и непосредственно данных. Вот они на картинке:
Такие посылки данных штангенциркуль выдает 4 раза в секунду. Каждая посылка состоит из 3 байт. Сначала передается младший байт. Внутри байта порядок следования бит тоже начинается с младшего. Первым приходит младший бит а затем страшие. Первые два байта содержат непосредственно данные об измерениях в сотых долях миллиметра. Третий байт содержит бит-признак отрицательного числа. Инвертируем все 3 байта, переворачиваем, переводим в десятичную систему, делим на 100, получаем значение в миллиметрах. На осциллограмме штангенциркуль передает число 6,75 мм.
С отображением значения на индикаторе у меня вопросов не возникает, а вот как получить десятичное значение - проблема для меня. Если кто поможет фрагментом кода или хотя-бы направлением действия - буду весьма признателен!
как получить десятичное значение - проблема для меня.
Так Вы ж вроде уже всё сделали!
Вот смотрите, Вы пишете
делим на 100, получаем значение в миллиметрах.
Ну и давайте добавим: "берём остаток от деления на 100 и получаем сотые доли миллиметра".
И Всё. Если всё остальное правильно, конечно.
Я имел ввиду написание программы, программист из меня пока не очень.
Я имел ввиду написание программы, программист из меня пока не очень.
ничего не понимаю, ну деление на 100 Вы же написали? Так напишите взятие остатка (то же самое, только вместо / используйте %)
Не оно ли ?
http://www.instructables.com/id/Reading-Digital-Callipers-with-an-Arduino-USB/
http://nut-bolt.nl/2012/reading-digital-calipers-with-an-arduino/
Не оно ли ?
http://www.instructables.com/id/Reading-Digital-Callipers-with-an-Arduino-USB/
http://nut-bolt.nl/2012/reading-digital-calipers-with-an-arduino/
Оно! Огромное спасибо!
Araris, + 100 в карму))).
Спасибо за спасибо, да, есть один тайный способ, делюсь : https://www.google.com.ua/?gws_rd=ssl#q=arduino+caliper
Вот окончательный код, может пригодиться кому:
Не претендую на гладкость и лаконичность написания, т.к. программирую раз в год, но работает. Программа непрерывно выводит данные с цифрового штангенциркуля на 4 семисегментных индикатора, на втором таком индикаторе кнопками устанавливается значение, при достижении которого загорается светодиод. Мне это понадобилось для самодельного ЧПУ самодельного листогиба.
Да, забыл написать - сигналы с штангенциркуля инвертированы аппаратно (согласование уровней).