Jump to content

Recommended Posts

Надо написать программу для контроллера Ардуино нано с таким функционалом:

Контроллер должен выполнять функцию ввода данных в микросхему по интерфейсу I2C.

К нему на аналоговые входы подключены 4 потенциометра, каждый из которых выдает регулируемое напряжение от напряжения питания 5 вольт до нуля. К интерфейсу I2C контроллера подключено некое устройство с восемью байтовыми регистрами – A, B, C, D, E, F, G, H.  Само устройство имеет 7-и значный адрес K.  Кроме того, еще два цифровых входа контроллера формируют двухразрядное число Х.

Программа в цикле должна делать следующее:

Считать значение с аналогового входа 1, преобразовать его в десятизначное двоичное число. Так что 0 напряжения соответствует 0 числа, а 5 вольтам – 1023 соответственно. Присоединить к нему число Х в виде 11-го и 12-го разрядов соответственно. Старший байт полученного числа отправить по интерфейсу I2C в регистр А, младший байт – в регистр B.

Повторить ту же самую процедуру с другими аналоговыми входами, записывая старший и младший байты полученных чисел в регистры C и D,  E и F, G и H соответственно.

Выдержать паузу примерно 0,3 секунды и вернуться к началу цикла.

Сколько может стоить написание такой программы? Достаточно библиотечных модулей для работы с I2C, или тут надо писать свое на нижнем уровне?

Share this post


Link to post
Share on other sites
14 часов назад, Виктор_А сказал:

Кроме того, еще два цифровых входа контроллера формируют двухразрядное число Х.

это как?

Share this post


Link to post
Share on other sites

Технология Maxim Integrated nanoPower: когда малый IQ имеет преимущества

При разработке устройств с батарейным питанием важно выбирать компоненты не просто с малым потреблением, но и с предельно малым током покоя. При этом следует обратить внимание на линейку nanoPower производства компании Maxim Integrated. В статье рассмотрено их применение на примере системы датчиков беспроводной оконной сигнализации.

Подробнее

1 час назад, IMXO сказал:

это как?

Для записи в регистры требуется 12-ти разрядное двоичное число. 10 младших разрядов формируются из преобразования напряжения аналогового входа в десятиразрядное двоичное число (если я не путаю, у Ардуино нано именно 10-ти разрядное АЦП.). А 11-й и 12-й разряды берутся со входов Ардуино нано, на которых подан потенциал 0 или 1. Т.е. я могу перепаивая при наладке изменять значение этих разрядов не трогая программу.

Share this post


Link to post
Share on other sites
1 минуту назад, mr_smit сказал:

Наверное имеется ввиду 2 джампера. 00-01-10-11

Совершенно верно. Только не джамперы, а просто перемычки паянные. Это нужно для отладки железяки.

Share this post


Link to post
Share on other sites
                     

Материалы вебинара STM32G0 – новый лидер бюджетных 32-битных микроконтроллеров от STMicroelectronics

На вебинаре были продемонстрированы современные методы тестирования производительности микроконтроллеров на примере самых бюджетных 32-битных семейств общего назначения STM32G0 и STM32F0, проведено их подробное сравнение. Мы подготовили для вас материалы. Вы можете посмотреть видеозапись вебинара, ознакомиться с ответами на вопросы, загрузить код для тестирования, прочитать статьи по теме

Подробнее...

5 минут назад, mr_smit сказал:

Может вам это подойдёт:

Не совсем. Требуется именно преобразование положения потенциометра в цифровую форму и передача его значения по I2C. К тому же все будет работать без компа - это чисто аппаратная приблуда.

Share this post


Link to post
Share on other sites
2 часа назад, Виктор_А сказал:

Совершенно верно.

писать ТЗ надо правильно... не "двухразрядное число Х" , "двухбитовое"

 

18 часов назад, Виктор_А сказал:

Достаточно библиотечных модулей для работы с I2C, или тут надо писать свое на нижнем уровне?

да,  достаточно. https://soltau.ru/index.php/arduino/item/371-interfejs-i2c-i-arduino

http://arduino.ru/Reference/AnalogRead

единственное, что для нормальной работы АЦП придется делать цифровой фильтр.http://geekmatic.in.ua/filtracia_shumov_analogovogo_signala

 

Share this post


Link to post
Share on other sites
14 минут назад, IMXO сказал:

не "двухразрядное число Х" , "двухбитовое"

Прошу прощения - язык не наработан. Конешно Вы правы.

 

15 минут назад, IMXO сказал:

для нормальной работы АЦП придется делать цифровой фильтр

Это интересно! А не можете пояснить - зачем? На вход аналоговый могу емкость добавить небольшую для стабильности. Ибо входной сигнал медленно меняющийся - грубо говоря, руками крутим потенциометр.

Share this post


Link to post
Share on other sites

Не понятно как устройство поймет в какой регистр ведётся запись.

Share this post


Link to post
Share on other sites
9 часов назад, mazzi сказал:

Не понятно как устройство поймет в какой регистр ведётся запись

В стандартной процедуре записи протокола I2C каждая запись конкретно адресуется. Регистры A-H -  на аппаратном уровне это однобайтовые адреса регистров. А К - это семибитовый слейв-адрес всего устройства. Он тоже адресуется в процедуре I2C оператором Wire.beginTransmission(SLAVE_ADDRESS)

У меня просто сомнение по библиотеке Wire.h - оператор Wire.write(  ) - это запись одного байта, или сразу запись байтового адреса регистра и значения байта.

Share this post


Link to post
Share on other sites

Да, она передаёт только адрес. Один байт.

Edited by mazzi
Опечатка

Share this post


Link to post
Share on other sites
21.09.2019 в 11:43, IMXO сказал:

единственное, что для нормальной работы АЦП придется делать цифровой

Проще энкодеры поставить.

Share this post


Link to post
Share on other sites

Не проще. Абсолютные энкодеры малоразрядны - не более 8 и дороги. Требуют много шин на подключение. Инкрементные потребуют мер энергонезависимой памяти и неудобны при настройке на слух или на глаз - по анализатору спектра.

Потенциометр при этом более эргономичен, тем более, что их во всем девайсе будет аж десяток - взаимосвязанных при настройке.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

  • Сообщения

    • @Alkarn  Почему подано на вход схемы 1 Вольт ? Начать с 1 мВ хотя бы, но вообще, схема работает с уровнями ниже.  R3 переменный резистор. Где он ? Это моделировано на МС ? Это твои проблемы.  Сначала это все моделировалось в мультисиме и потом уже собиралось практически  
    • именно так. Пульсации в источниках никто не отменял. Или у вас все источники только аккумуляторы и без внутреннего сопротивления? я вам ребят скажу, что хоть сила и собрана по этой схеме, но она далеко не торт на самом деле. Если смотреть с позиции цифрового управления, то линейность на начальном участке у нее отвратная. Стабильность тоже так себе, потому как управление и ОС идет по разным входам ОУ и очень зависит от параметров каждого (!) конкретного ОУ. И это только основные проблемы. Есть еще куча нюансов. Но чтобы все их затронуть и описать, надо книжку написать по электронным нагрузкам и их схемотехнике Чисто ради разминки ума - кто нибудь сможет мне доходчиво рассказать как в моей схеме работает режим CR на умножителе AD633? Ну к примеру. И обьяснить хоть в общих чертах почему я не смог достигнуть сопротивления ниже 1 Ом? А вроде узелок такой простенький достаточно... Полноценная тема для главы той книги
    • РадиоНастройщик, кто вам сказал, что вы что-то понимаете в схемах, и можете поучать других? Не поленился, и промоделировал начальную схему и вашу. Результат еще раз подтвердил то, что и так было очевидно - начальная схема великолепно работает  и индицирует СВЧ сигнал с уровнем менее 100 мВ. Ваша даже при уровне входного сигнала 1 В на выходе выдает ослабленный сигнал входной частоты. Начните с Борисова и Айсберга. Иначе остаются 2 предположения:  1-вы злостный тр олль, 2 - надо обратиться к психоаналитику для коррекции самооценки.  
    • ошибка с тиристором - но интересует больше разводка земли у МС и влияние перемычек 
    • скину свою защиту сюда - может кому пригодится - так как чую - не скоро доберусь до задуманного усилка) схема комплексной зашиты на ОУ ЛМ324 , схема зашиты проверена - в кулере применил полевик - нет смысла регулировать - ес радиаторы горят) - зашита по току на оптопаре - честно - не проверял -но- по идее при перегрузе той или иной полярности должна сработать - желательно ес слишком мощный умзч - добавить резистор в цепь шунта - для ограничения тока - не спалить оптопару , печатку не делал - так как планировал делать все полностью одной платой - весь УМЗЧ и добавить еще пару задуманных схем - но это позже.
    • Пожалуйста. Если что, у Omron есть и оптические датчики с таким питанием. 
    • Продам ГМ-70 графитовые. Новые, с хранения. В наличии 8шт. по 1300 руб/шт. Саратовская обл. Возможна отправка почтой или ТК.
×
×
  • Create New...