2016-02-22 4 views
1

В настоящее время я работаю над проектом, где мне нужно управлять 16 насосами 1 шаговым двигателем и 2 датчиками расстояния - 21 цифровой штифт и 2 аналоговых контакта. Мне нужно создать пользовательский интерфейс и использовать этот пользовательский интерфейс для отправки информации в Arduino, который будет контролировать мою систему. Мне нужно было бы получить только 1 или 0 от каждого нажатия кнопки из пользовательского интерфейса, чтобы определить, какой насос необходимо включить. Я использую Arduino mega 2560 и кодирую пользовательский интерфейс в Visual Studio C#.Arduino mega 2560 с малиновым пирогом 2 проект

Я провел различные исследования по последовательной связи для Arduino, включая использование функции serialevent() и библиотеки firmata. Однако мне трудно понять, как все это связывается вместе, и если то, что я хочу сделать, даже возможно! Вот мои вопросы:

  1. Возможно ли это?

  2. Возможно ли это, используя Serialevent1() ........... serialevent21()? или с использованием Serial.availble() и Serial.read()

  3. Вместо того, чтобы читать одну кнопку, нажмите на пользовательский интерфейс за раз. Могут ли входы в пользовательский интерфейс собираться и отправляться на ардуино в качестве группы. Затем перезапустите UI и очистите значения.

Любая информация и/или совет помогут! Мне просто нужно указывать в правильном направлении!

Благодаря DG

+1

Звучит как интересный проект, но, к сожалению, это очень широкий вопрос, который непригоден для переполнения стека. Я бы посоветовал задать более простые вопросы, в идеале, исходя из ваших попыток (показывая код) – PaulG

ответ

0

Вы рассмотрели следующие article? Он использует Arduino mega 2560, и в статье представлены как код C#, так и код Arduino. Он обменивается данными через последовательный порт и отправляет данные в обоих направлениях.

  1. Да это
  2. В статье выше использует Serial.print и readSerialInputCommand, который похож на Serial.read. Вы можете использовать Serial.Read вместо этого, если хотите, выполняя ту же задачу и возвращая другой тип данных.
  3. Вы можете скомпилировать значения в группу. Если вы хотите быть супер оптимизированным, вы можете использовать битовые операторы и скомпилировать первые 21-значные значения в массив байтов и отправить его. Однако с его единственными 21 цифровыми выводами я рекомендую просто использовать строку с каждым символом в строке, связанной с булавкой. Например: «10110» может установить pin0, pin2, pin3 HIGH и установить pin1, pin5 LOW. Я бы порекомендовал вам не перезапускать пользовательский интерфейс, поскольку он должен будет снова подключиться к последовательному порту. Скорее просто очистите все значения с помощью вашего кода.
+0

Спасибо! Я обязательно посмотрю на это. Я дам вам знать, как оно идет –

Смежные вопросы