Search the Community
Showing results for tags 'arduino'.
-
Работал ли кто с модулем XY-LPWM ? Что-то никак не могу настроить его управление от компа - на любые команды отзывается FAIL установлено 9600, 8/1 bit
-
Добрый день! подскажите пожалуйста правильная ли схема подключения, ленты ws2811 60led/1m 12v нужно ли что-то доделать, переделать? нужно ли использовать "pnp транзисторы для конвертации логического уровня" ? Буду использовать ардуино мега, лестница на 17ступеней по 1метру(90см), 1 фоторезистор и два PIR датчика (или ультразв. датчики хз что лучше).Питания 2 блока 250ватт, китайские бесшумные. провод основной 2*1.5мм ВВГ-П нг, и для фоторезистора и датчиков 3*1мм ПВС. В Ардуино и в электрике полный ноль возьму готовую прошивку ютуб блогера алекса гравера.
-
Сделал простой обработчик Modbus(RTU/ASCII) для микроконтроллеров Arduino Обрабатываются функции: Read Holding Registers 0x03 Read Input Registers 0x04 Write Holding Register 0x06 Write Holding Registers 0x10 Подробное описание и пример использования можно посмотреть по ссылке http://kandiral.ru/arduino/modbus_slave_na_arduino.html В примере передаются данные из микроконтроллеров в программу на Delphi следующих типов: int, word, unsigned long, long, float, string(массив символов) А также передаются данные напрямую из/в EEPROM Старался сделать максимально простой простой с минимальным использованием ресурсов контроллера. Если будут выявлены ошибки или возникнут предложения по доработке, пишите исправим и обсудим.
-
Добрый день, помогите пожалуйста создать приборную панель на ардуино. Есть 2 шаговых двигателя от приборной панели и есть часть кода для того чтобы ими управлять. Помогите дописать для того что бы работали спидометр и тахометр. #include <Stepper.h> #define STEPS 720 // steps per revolution (limited to 315°) #define COIL1 8 #define COIL2 9 #define COIL3 10 #define COIL4 11 #define PotIn 0 // create an instance of the stepper class: Stepper stepper(STEPS, COIL1, COIL2, COIL3, COIL4); void setup(){ stepper.setSpeed(30); // set the motor speed to 30 RPM (360 PPS aprox.). stepper.step(630); //Reset Position(630 steps counter-clockwise). // Serial.begin(9600); //for debuging. } int pos=0; //Position in steps(0-630)= (0°-315°) void loop(){ int val = analogRead(PotIn); //get the potentiometer value (range 0-1023) val= map(val,0,1023,0,630); // map pot range in the stepper range. if(abs(val - pos)> 2){ //if diference is greater than 2 steps. if((val - pos)> 0){ stepper.step(-1); // move one step to the left. pos++; } if((val - pos)< 0){ stepper.step(1); // move one step to the right. pos--; } } // Serial.println(pos); //for debuging... // Serial.println(val); // delay(100); }
-
Всем обладателям Интернет ТВ от Укретелекома огромный привет. Диплом все дела, 4 курс, практика на которую не ходит никто. Ливнул с универа к родителям домой и сразу же задание "ты ж там программировал че то там как то там, прошей MAG 255 под Aura HD". Вот наш MAG: Гугль в помощь один вечер , накопал много разбросанной инфы. Вот основная: Тут норм 1 и 2 стрим. Достаточно чтоб прошить самому. Вот тут инфа по прошивке 25 серии через ардуино, ибо ленивый человек ищет что есть под рукой, а не покупает готовое. Нюанс питание берем от +3.3В. В программе которой пишем и читаем ставить размер в 1 милион, а не 8 как я вычитал в даташите на даную память. (ибо не сможем именить прогой дамп "БИОСА" для обратной заливки) Я юзал Arduino NANO made krivoi Kitay. Заработало сразу.
-
Нужна помощь в питании дипломного проекта. Имеется: аналог arduino UNO (wemos R1 D1)(питание 7-12В), драйвер L298N(5В на питание, 6.5-7.5В на моторчики), три моторчика на 3-6В (нужно не менее 5В для нормальной работы), турбина для робота-пылесоса (5В) и 5 датчиков расстояния HC-SR04(5В). Необходимо запитать это всё от одного источника питания. Пробовал запитывать всё от КРОНЫ понижая напряжение при помощи последовательно подключённых диодов, получилось не очень. Буду благодарен за любой дельный совет
-
Доброго времени. Нужен совет по выбору железа с возможностью подключения к LAN через ethernet или wi-fi (rasberry, arduino и им подобные). Железо должно уметь работать с websocket (что-то с linux на борту или поддержкой сетевого стека из коробки), ЯП желательно не C\C++, стоимость платы или комплекта, чем меньше, тем лучше.
- 1 reply
-
- arduino
- rasberry pi
- (and 8 more)
-
Всем привет! Хочу разработать платку, которая расширяет возможности БК машины, не знаю с чего начать. В программировании опыта более 10 лет, но это серверное программирование Вопросы 1) На чем лучше разработать CAN сниффер? чтобы недорого и удобно разрабатывать. У меня есть готовый образен на STM32, пока смотрю в его сторону, нашел еще варианты на Arduino 2) Как можно снять прошивку с STM32, или безопасно понять есть ли там защита? 3) Инструментарий: Что нужно для разработки кроме IDE? Какой-то переходник для прошивки? 4) Кто печатает платы по проекту чтобы можно было на себя взять только разработку, а печать заказать? 5) может ли быть такое что плата что у меня в образце какая-то типовая и её просто надо купить по каталогу и прошить? 6) есть ли какие-то распространенные библиотеки для разработки в CAN? 7) как провести отладку? что для этого нужно? Как я понимаю надо одновременно и комп к плате подключить и плату к can-шине?
-
Здравствуйте, пишу программу на АТмега2560. И возникла очень странная проблема. Код такой: #define F_CPU 16000000 #include <avr/io.h> #include <util/delay.h> #include <avr/interrupt.h> #include <stddef.h> #include <math.h> #include <avr/eeprom.h> #include <avr/wdt.h> //#include "timer.h" //#include "Output_devices/status_led.h" int main(void){ cli(); //status_led_init(); DDRB |= (1<<PB6); //timer0_init(); //timer2_init(); TIMSK0 |= (1<<TOIE0); // enable timer 0 overflow interrupt TCCR0B |= (1<<CS00) |(1<<CS01); // set timer 0 prescaler factor to 64 sei(); PORTB |= (1<<PB6); _delay_ms(200); PORTB &= ~(1<<PB6); _delay_ms(200); PORTB |= (1<<PB6); _delay_ms(200); PORTB &= ~(1<<PB6); _delay_ms(200); PORTB |= (1<<PB6); _delay_ms(200); PORTB &= ~(1<<PB6); while (1) { }//while1 } Внешний кварц 16мгц на XTAL1 и XTAL2. На заводских фюзах работает. Но на фюзах взятых из арудино мега не работает. Светодиод на PB6 просто светится непрерывно. Но если закомментировать инициализацию таймера-0 работает. Как это? В чем проблема?
- 15 replies
-
- ATmega2560
- Фьюзы
-
(and 2 more)
Tagged with:
-
Здравствуйте поверхностный поиск в Яндексе не дал результатов решил обратится к вам суть в следующем: к мк с логикой 5в подключена карта памяти по spi с логикой 3.3в через буферный элемент здесь все в порядке поскольку сигнал от карты памяти 3.3в из за длинны шнура он теряется и становится ниже уровня лог 1 контроллера 5в вопрос как простым методом усилить его до 5 вольт чтоб он не терялся предполагаю биполярным транзистором но по какой схеме? у меня есть такой он подойдет? http://uamper.com/products/datasheet/2N2222.pdf благодарю.
- 14 replies
-
Опубликовано с разрешения администрации форума В этой статье не рассматривается процесс зарядного оборудования и зарядной кучи, а также не представлено детальное внедрение мобильного приложения, апплета и облачного сервера. Данная статья посвящена реализации зарядного свайпа Great Wall на новой платформе разработки последовательного порта TFT экрана STWI056WT-01, такой как: Создание St файла, добавление страницы интерфейса, параметры кнопки, параметры компонента изображения, параметры часов реального времени и инструкции по настройке, назначение ярлыка, два метода загрузки новой платформы разработки и т.д. Структура повествования такова: 1. Введение в человеко-машинный интерфейс 2. Создание виджета интерфейса 3. Загрузка интерфейса 4. Обучение человеко-компьютерному взаимодействию 5. Программирование связи между MCU и сенсорным экраном STONE 1. Введение в человеко-машинный интерфейс Интерфейс режима ожидания зарядной сваи показан на рисунке (1). С помощью авторизации входа по QR-коду мобильного приложения и сканирующего интерфейса апплета идентифицируйте и активируйте оборудование зарядной сваи Great Wall. После сбора информации о клиенте убедитесь, что интерфейс зарядки транспортного средства подключен правильно, и перейдите на страницу мониторинга параметров зарядки в режиме реального времени, как показано на рисунке (2). Имя пользователя, ID и номерной знак отображаются на странице отображения параметров зарядки, чтобы облегчить пользователю проверку. Страница мониторинга также собирает напряжение в реальном времени, загруженное модулем зарядки. Ток (ток будет контролироваться на разных этапах и скоростях зарядки) также будет накапливать время зарядки и отображаться динамически. В процессе зарядки стоимость также будет отображаться на экране и динамически изменяться. Когда зарядка будет завершена (после быстрой зарядки будет произведено пополнение заряда, что является внутренней работой модуля зарядки, который не участвует в человеко-машинном программировании здесь), или вручную нажмите кнопку полного изменения / кнопку окончания, чтобы войти на страницу благодарности, как показано на рисунке (3). На странице благодарности, но датчик модуля зарядки распознает, что зарядный пистолет сброшен, интерфейс может автоматически перейти к интерфейсу ожидания зарядной кучи - рисунок (1). Если вы отсканируете код, вы также можете снова войти в систему, чтобы попасть на страницу контроля параметров зарядки в реальном времени - рисунок (2). Рисунок (1) интерфейс режима ожидания зарядной сваи Рисунок (2) страница мониторинга параметров зарядки в реальном времени Рисунок (3) страница благодарности 2. Создание виджета интерфейса Сначала создайте новый проект в платформе STONE designer, заполните имя проекта, разрешение выбранного экрана последовательного порта 640*480, путь к проекту и т.д. Заполненное здесь имя проекта будет использоваться в последующей отладочной загрузке для создания скомпилированных файлов (имя peoject используется как имя папки компиляции). См. рисунок (4) рисунок(4) создание интерфейса нового проекта Работа включает в себя: 1) Добавить окно 2) Импортировать изображение 3) Вставить цифровые часы 4) Кнопка переключения производственного интерфейса 5) Параметры отображения макета этикетки 6) График аддитивного GIF Ниже приведены подробные сведения по порядку. 1) Окно добавления В части настройки проекта в верхней левой части проекта щелкните правой кнопкой мыши по названию проекта. В это время во всплывающем меню выберите новое окно, чтобы добавить по очереди окна Window1, Window2, а также автоматически создаваемую при создании нового проекта домашнюю страницу_ Page - стартовую страницу. Когда вы щелкаете правой кнопкой мыши на windows1, во всплывающем меню можно выбрать Копировать, Удалить и Установить как домашнюю. Выберите Установить как домашнюю, чтобы заменить начальную страницу. Дважды щелкните windows1, чтобы развернуть или сохранить виджеты в windows1. 2) Импорт изображения Этот проект начинается с дома на трех страницах_ Импортируйте фоновые изображения в страницу, окна1 и окна2. Этот шаг должен быть выполнен первым, потому что это фон! Перед импортом фонового изображения, все сделанные виджеты будут "заблокированы" фоном. Если это кнопка, то вы обнаружите, что они не могут реализовать функцию дизайна. Поэтому не забывайте сначала импортировать фон, а затем создавать другие виджеты. Нажмите и удерживайте значок изображения в строке меню списка деталей и перетащите его на интерфейс. Фоновое изображение, конечно же, имеет размер 640 * 480 пикселей. Нет необходимости использовать мышь для наведения, а работа с клавиатурой быстрее и точнее. Как показано на рисунке (5), заполните X, y, W и h в верхней правой части параметров. Кроме того, в нижней части рисунка (5) можно выбрать фоновое изображение. Перед выбором необходимо добавить фоновое изображение на платформу. Способ добавления - нажать "+" во вкладке изображения внизу слева и выбрать по очереди картинки UI, сделанные художником, в соответствии с руководством (о копировании этих картинок в память дисплея будет сказано при загрузке интерфейса позже). Рисунок (5) координаты начальной точки и позиционирование высоты ширины 3) Поместите цифровые часы Нажмите и удерживайте значок цифровых часов в строке меню списка деталей и перетащите его на место проектирования в интерфейсе. Обратитесь к рисунку (6), чтобы установить цвет текста, размер шрифта и формат для атрибутов цифровых часов. Обратите внимание, что библиотека шрифтов для ПК не обязательно совпадает с библиотекой шрифтов для дисплея. Эффект, отображаемый на интерфейсе ПК, будет отличаться от эффекта, отображаемого на экране дисплея последовательного порта. Время и дата здесь отображаются в двух виджетах, как показано на рисунке (1), рисунке (2) и рисунке (3). Если место позволяет отображать их вместе, установите формат y-mm-dd HH: mm: SS. Если вы не хотите отображать секунды, можно использовать формат: HH: mm можно использовать. Рисунок (6) атрибуты цифровых часов 4) Кнопка переключения производственного интерфейса На странице мониторинга параметров зарядки windows1, как показано на рисунке (2), внизу справа есть кнопка full changed / end. При нажатии на нее происходит переключение на страницу благодарности windows2. Аналогично, нажмите и удерживайте значок кнопки в строке меню списка деталей и перетащите его в проектное место в интерфейсе. Ее свойства показаны на рисунке (7). Чтобы переключить страницу на window2, нужно выбрать open window для user define, а затем выбрать window2 для target name Убедитесь, что положение кнопки на рисунке и на фоне не совпадают. Кроме того, ширина дома, заднее окно, установленное значение и другие опции доступны в пользовательском определении. рисунок(7) 5) Параметры отображения макета этикетки Аналогично, нажмите и удерживайте значок этикетки в строке меню списка деталей и перетащите его на место проектирования в интерфейсе. Установите цвет текста и размер шрифта в разделе атрибутов этикетки, отрегулируйте положение и размер шрифта в соответствии с отображаемым в реальном времени напряжением (этикетка7), током (этикетка8), временем зарядки (час -- этикетка10, минута -- этикетка11, секунда -- этикетка12), стоимостью (этикетка9) и другим фоном. Здесь важным моментом является название. Названия каждого модуля должны быть разными. Данные, загружаемые из модуля зарядки, должны располагаться в соответствии с названием. Не будьте самонадеянными. 6) Аддитивный график GIF На рисунке (2) значок батареи справа - это динамическая GIF-диаграмма, показывающая текущее состояние заряжаемой батареи. Аналогично, нажмите и удерживайте значок GIF в строке меню списка деталей и перетащите его в проектное место в интерфейсе. Импорт Gif-изображений аналогичен импорту изображений. Аналогично, добавьте GIF-изображение с помощью "+" под ярлыком изображения слева. Затем выберите изображение GIF в разделе "Изображение" раздела "Свойства". 3. Загрузка интерфейса Существует два метода: A и B. A. Копирование через флэш-диск USB; B. Копирование через USB-кабель. Метод a: Выполните следующие действия: 1. Сохраните файл проекта человеко-машинного интерфейса; 2. Нажмите debug - "download" в главном меню, выберите целевую папку, и в выбранной папке будет создана вложенная папка с тем же именем, что и проект; 3. Скопируйте папку "default" во вложенной папке shell в каталог STONE на флэш-диске USB; 4. Отключите питание экрана дисплея и поверните переключатель на задней панели экрана дисплея в положение "host"; 5. Вставьте флэш-диск USB в интерфейс USB экрана дисплея, отключите другие ненужные соединения и включите питание; 6. После стабильного запуска нажмите кнопку сброса на задней панели экрана дисплея. После того как индикатор снова станет стабильным, выключите питание и верните переключатель в положение "устройство", указанное выше; 7. Проверьте, успешно ли прошла загрузка. В противном случае повторите шаги 4, 5 и 6 выше до успешного завершения. Метод B: Нажмите отладка -- "скачать" в главном меню, выберите целевую папку, и выбранный файл будет отображен В папке будет создана подпапка с тем же именем, что и проект; Используйте автономный кабель связи USB для прямого соединения компьютера и интерфейса USB экрана дисплея (интерфейс USB USB накопителя в методе a), и скопируйте папку raw / default / в подпапке с тем же именем проекта в папку "default" каталога хранения экрана дисплея! Обратите внимание, что сначала можно удалить остальные семь папок, кроме папки с изображениями в папке "по умолчанию". Папка изображений может быть занята системой при включении аппарата, и при записи будет выдана ошибка. Вы можете видеть, что папка image содержит стандартные изображения этикеток. Если добавляются новые этикетки и картинки, вы можете вручную скопировать их после сравнения файлов папки image / XX. Этот метод похож на отладку реальной машины, что более удобно и быстро! 4. Инструкция взаимодействия человека и компьютера Используются следующие инструкции STONE: A. Настройка цифровых часов B. Обновление значения метки C. Преобразование страницы A. Настройка цифровых часов Часто бывает необходимо установить часы при первом включении. В трех интерфейсах этого проекта есть шесть виджетов цифровых часов с разными именами. При включении питания достаточно сбросить часы clock1, и остальные будут синхронизированы автоматически. Обратите внимание, что формат атрибута цифровых часов установлен на y-mm-dd HH: mm: SS, который может быть изменен в зависимости от фактической ситуации на дисплее. Если вы не хотите отображать секунды, выберите формат: HH: mm. Инструкции по настройке унифицированы следующим образом: ST<{"cmd_code":"set_date","type":"digit_clock","widget":"clock1","date":"2022-03-24 12:23:46"}>ET B. Tag value update Напряжение (метка7), ток (метка8), время зарядки (час -- метка10, минута -- метка11, секунда -- метка12) и стоимость (метка9), отображаемые на странице Window1, являются компонентами меток, которые передаются модулем зарядки, а MCU посылает их на сенсорный экран последовательного порта через инструкции, связанные с метками. Инструкции, связанные с метками: set_ text Установить текст, отображаемый меткой set_ value Установить значение, отображаемое этикеткой get_ text Получить текст, отображаемый меткой get_ value Получить значение, отображаемое меткой (float) привести пример: Set text: ST<{"cmd_code":"set_text","type":"label","widget":"label4","text":"Frank"}>ET ST<{"cmd_code":"set_text","type":"label","widget":"label5","text":"123456"}>ET Set value: St < {"cmd_code": "set_value", "type": "label", "widget": "label9", "value": 1.23, "format": "%. 2F"} > et set fee 1.23 ST<{"cmd_code":"set_value","type":"label","widget":"label8","value":25,"format":"%02d"}>ET Set current 25 A Get text: ST<{"cmd_code":"get_text","type":"label","widget":"label6"}>ET Format values: %d,%02d,%03d,%04d,%05d,%06d,%f,%.1f,%.2f,%.3f,%.4f,%.5f,%.6f C. Преобразование страницы Окна, связанные с командой: open_ win Открыть любое окно (Windows, работающие в фоновом режиме, также могут быть открыты с помощью этой команды, рекомендуется) close_ win Закрыть любое окно (не рекомендуется, используйте с осторожностью) back_ win Вернуться в верхнее окно и закрыть текущее окно (не кэшировать данные текущего последовательного порта) back_ win_ to Вернуться в любое окно верхнего уровня, при этом другие открытые окна работают в фоновом режиме back_ home Вернуться в главное окно, не закрывать ранее открытое окно, а другие окна запускать в фоновом режиме; привести пример: Открыть окно Window1 ST<{"cmd_code":"open_win","type":"window","widget":"window1"}>ET Закрыть окно label_ Value ST<{"cmd_code":"close_win","type":"window","widget":"label_value"}>ET Вернитесь к верхнему окну: ST<{"cmd_code":"back_win","type":"window"}>ET Имя возвращаемого верхнего уровня - окно label_ Value, которое закрывает все окна над ним. Обычно применяется к многоуровневым окнам ST<{"cmd_code":"back_win_to","type":"window","widget":"label_value"}>ET Return to label_ Value window ST<{"cmd_code":"back_win_to","type":"window","widget":"home_page"}>ET Вернуться в главное окно Вернуться в главное окно ST<{"cmd_code":"back_home","type":"window"}>ET PS: главное окно не может быть закрыто 1. Программирование связи между MCU и сенсорным экраном STONE Программирование в среде Arduino, метод ввода baidu выгружается, чтобы реализовать нормальный английский ввод. Кроме того, вышеприведенные инструкции должны быть изменены в среде Arduino. Как показано ниже: St < {"cmd_code": "set_value", "type": "label", "widget": "label9", "value": 1.23, "format": "%. 2F"} > et the above setting fee is 1.23, which should be written in Arduino program as: Serial. println(F("ST<{\"cmd_code\":\"set_value\",\"type\":\"label\",\"widget\":\"label9\",\"value\":1.23,\"format\":\"%.2f\"}>ET")); Себестоимость является переменной с плавающей точкой, а метод передачи - последовательный Print (price, 2), с резервированием 2 десятичных знаков. Последовательный. Write (price) может передавать только 0-9, одиночные цифры. А поскольку это переменная, ее нужно передавать отдельно. Смотрите программный код ниже. Программный код видеоэффекта выглядит следующим образом: /* frank13 STONE and arduino COMM Turns on an LED on for one second, then off for one second, repeatedly. This example code is in the file of frank. */ // Pin 13 has an LED connected on most Arduino boards. // give it a name: int led = 13; unsigned int count_ i=0; //------charged station use----------2022.03.23------ unsigned int led1s=0; unsigned int time_ 1s=0; unsigned int time_ 1m=0; unsigned int time_ 1h=0; float price=0.001; // Expenses$ // the setup routine runs once when you press reset: void setup() { // initialize the digital pin as an output. pinMode(led, OUTPUT); Serial. begin(115200); // Turn on the serial communication function and wait for the serial port to open while (!Serial) { ; // wait for serial port to connect. Needed for Leonardo only } } // the loop routine runs over and over again forever: void loop() { //---Cumulative time + +------ time_ 1s = time_ 1s + 1; if(time_1s >= 60){ time_ 1s = 0; time_ 1m = time_ 1m + 1; if(time_1m >= 60){ time_ 1m = 0; time_ 1h = time_ 1h + 1; } } //------time display ----- Serial. print("ST<{\"cmd_code\":\"set_value\",\"type\":\"label\",\"widget\":\"label12\",\"value\":"); //sec Serial. print(time_1s); // Serial. write(time_1s); . The write value is specified as single byte only out 0-9, Serial. println(",\"format\":\"%02d\"}>ET"); // sec delay(100); Serial. print("ST<{\"cmd_code\":\"set_value\",\"type\":\"label\",\"widget\":\"label11\",\"value\":"); //min Serial. print(time_1m); // Serial. write(time_1s); only out 0-9, Serial. println(",\"format\":\"%02d\"}>ET"); // min Serial. print("ST<{\"cmd_code\":\"set_value\",\"type\":\"label\",\"widget\":\"label10\",\"value\":"); //hour Serial. print(time_1h); // Serial. write(time_1s); only out 0-9, Serial. println(",\"format\":\"%d\"}>ET"); // hour delay(100); price = (time_1h * 120) + (time_1m * 2) + (time_1s * 0.036); // Simple algorithm of charging cost //Here is the floating point charge price$ Serial. print("ST<{\"cmd_code\":\"set_value\",\"type\":\"label\",\"widget\":\"label9\",\"value\":"); Serial. print(price,2); // 1.2356 --- > 1.23 floating point number takes 2 decimal places Serial. println(",\"format\":\"%.2f\"}>ET"); // price $ Serial.println(F("ST<{\"cmd_code\":\"set_value\",\"type\":\"label\",\"widget\":\"label8\",\"value\":20.11,\"format\":\"%.2f\"}>ET")); digitalWrite(led, LOW); // turn the LED off by making the voltage LOW led1s = led1s + 1; if(led1s >= 2){ led1s = 0; digitalWrite(led, HIGH); // turn the LED on (HIGH is the voltage level) Serial.println(F("ST<{\"cmd_code\":\"set_value\",\"type\":\"label\",\"widget\":\"label8\",\"value\":20.26,\"format\":\"%.2f\"}>ET")); //current out } delay(1000); // wait for a second, range:200-2000 }
-
Как из AV сигнала создать файл mp4 с помощью ардуино или другим способом без покупки специализированных комплектующих?
- 18 replies
-
- ардуино
- прогрмирование
-
(and 2 more)
Tagged with:
-
Простой проект для повторения: управление любыми нагрузками с Android-смартфона при помощи Arduino (или любым МК) через Bluetooth. Приложение Led Switcher в Google Play Что понадобится приобрести: Arduino Nano (2$) Bluetooth Serial модуль (3$) Опционально Шилд реле (2$) Подключение разных типов нагрузок к Arduino: arduinoBasicConnections.pdfLed Switcher.apk
-
Добрый день. Есть идея переделать купленный в Китае регулятор мощности вот такой , а именно избавится от панели управления с кнопками и вместо нее использовать ардуино. Сама панель управления подключается к регулятору при помощи 4-х жильного провода. На панели управления присутствуют две кнопки (+/-), дисплейный модуль, вероятно электронный потенциометр, микросхема, вероятно для управления экраном и сигналами от кнопки, и всякая мелочевка. По хорошему бы подцепиться на эти 4 провода и эмитировать сигналы от панели управления при помощи ардуино, значение о текущем установленной величине, также получать с этих проводочков. Вот только не знаю как такое реализовать, может кто поделится опытом? С чего начать и как все провернуть?
- 24 replies
-
- регулятор мощности
- ардуино
-
(and 2 more)
Tagged with:
-
Здравствуйте! Я реализовал передачу данных через .NET к ардуино через COM-port. Все работает, но есть задержка в пару секунд прежде чем отправленные данные будут обработаны в самой ардуино. Я рылся в инете и узнал, что якобы контроллер ждет код прошивки и если он не поступает, то данные принимаются и обрабатываются. Заранее спасибо!
-
В этом блоге я бы хотел рассказать о том, как создавал собственную систему для Smart home. почему бы не воспользоваться готовой системой? Все просто, я студент факультета информационных технологий и стояла цель научиться чему-то новому. Из чего состоит моя система сейчас? Это сервер на Raspberry pi, несколько плат Arduino и ESP8266, а также реле от Sonoff. Ну и собственное приложение на телефон. История создания проекта Все началось с покупки Raspberry и экспериментов над ней. Для начала пробовал использовать LAMP стек (Linux —операционная система Linux; Apache – веб-сервер; MariaDB / MySQL - СУБД; PHP – язык программирования, используемый для создания веб-приложений). Но спустя некоторое время стало понятно, что PHP не очень подходит для этих целей, лично у меня не получилось подружить с MQTT брокером. Следующим для написания сервера стал Python с микрофреймворком Flask, на нем я и остановился. Python отлично подходит для этих целей, так как его легко подружит с брокером, можно подключить телеграммы бота, а также много интересных библиотек. Следующим шагом стала разработка веб-интерфейса. После пробы использовать конструкторы для построения интерфейса стало понятно, что лучше будет учить HTML, CSS, JS и писать интерфейс самостоятельно. Для обмена информации клиента с сервером я использовал Socket.io, это позволило отображать актуальные данные без перезагрузки страницы. Элементы управления распределены по отдельным виджетам. Некоторое время спустя на странице уже отображалась погода, было несколько переключателей, слайдеров, стрелочных приборов и несколько графиков. На этом этапе самым сложным, наверное, было отразить графики так, чтобы они постепенно подгружали новые данные и смещались в лево. шаг второй. Стало ясно, что следующим этапом необходимо реализовать возможность пользователю самостоятельно создавать и настраивать виджеты при использовании системы. Этим я и занялся. Выджеты были распределены на несколько видов. Переключатель, слайдер, палитра, виджеты для отображения информации и сейчас работаю над графиками. Пользователь может выбрать тип виджета, дать ему название, прикрепить иконку, настроить топик MQTT. Далее данные формируются в массив и отправляются на сервер для обработки и хранения. Шаг третий. Дальше мне стало интересно разработать какой-то механизм для создания сценариев, так как раньше систему нельзя было назвать автоматизированной. Он стал одним из самых сложных и одновременно интересных этапов. После серии попыток было создано модальное окно, в котором пользователь может назвать сценарий, написать условие (например, если температура превысила установленное снаряжение), установить действие, которое будет выполняться, настроить уведомление, в том числе и в телеграмм. Шаг четвертый. Веб-интерфейс это конечно хорошо, но не так удобно как мобильное приложение. Так как такого опыта у меня раньше не было, добиться желаемого результата в Android studio у меня не получилось. Решил попробовать Flutter и это было правильным решением, так как процесс пошел гораздо быстрее. Сейчас функционал в нем очень скромен, можно только отобразить показания с датчиков, изменить яркость освещения, управлять RGB подсветкой, да и собственно управлять реле. Как это работает? Пользователь через веб-интерфейс что-то нажимает, эти данные передаются на сервер через socket.io, далее он в зависимости от их типа обрабатывает и передаю в MQTT брокер, а он в свою очередь на конечное устройство (ESP8266). Отображение показаний с датчиков происходит в обратном порядке. При использовании мобильного приложения обмен данных с сервером происходит через Firebase. Это позволяет управлять системой удаленно не давая серверу белый IP( Ну и мне так было проще). Функционал системы Если коротко, то на данный момент можно управлять устройствами на основе ESP. Также можно создавать сценарии, за счет чего автоматизировать определенные процессы. В планах на будущее доработать сервер, улучшить работу со сценаримами, добавить больше видов виджетов, попытаться подключить ZigBee (сейчас для этого не хватает средств). Также продолжить работу над улучшением мобильного приложения. Это моя первая статья, поэтому надеюсь на понимание и поддержку. Если вам понравится, то дальше буду расширять эту тему. Сейчас параллельно работаю над подобным сервером для теплицы, даже построил небольшой полигон для опытов 2*3 метра. Также если у вас есть какие-то полезные советы, я их с удовольствием прочту. видео в котором показана часть возможностей сервера( к сожалению видео в лучшем качестве не сохранилось) https://youtu.be/Pg35x2uVfVc. https://youtu.be/gyDZJuq2sk0
-
- iot
- rasberry pi
-
(and 5 more)
Tagged with:
-
Помогите пожалуйста разобраться с питанием 1) надо ли тут понижайка/ повышайка DC-DC? 2) как предохранить плату от помех при нагрузке. Скетч прошивки тоже могу выложит, он максимально простой. Также печатную плату тоже выложу как доделаю схему.
-
Доброго времени суток, господа. Никик я не могу прошить атмегу. Всегда выводится такая ошибка: avrdude: Yikes! Invalid device signature. Double check connections and try again, or use -F to override this check. Раньше у меня получалось прошивать ее, но на 16 МГц. Решил, что способен прошить и на 8 МГц. Скачал пару библиотек и.... ничего, выдало ошибку. Первым делом я подумал, что все плохо с проводкой. У меня, кстати, TQFP32 адаптер, но я подумал, что контакт через макетную плату и UNO слишком слаб, поэтому припаял к выводам адаптера провода и вставил их в UNO. Как итог - ничего не поменялось. Менял я и UNO на NANO, переделывал схему (вставлял резистор от RES до VCC и наоборот, вставлял конденсатор между RES и GND у UNO), подключал резонатор на 16 МГц. А ошибка вся таже. Чё делать?
-
Всех приветствую! Сразу обозначу - опыта ноль. Прошу экспертной помощи и разъяснений. Есть задача - собрать проект лёгкого дрона, переносящего с собой малый груз (просто картонную коробку 10х10х10 см, для начала), оперирующего на горизонтальной сетке, где каждая секция пронумерована и сбрасывающий (а лучше - аккуратно кладущий) груз в определенную секцию. Итого требуется: 1) Определить способ поиска позиции дрона относительно сетки (и необходимой ячейки соответственно). 2) Определить какая Arduino потребуется. 3) Определить прочие необходимые для сборки компоненты. Заранее спасибо.
-
Недавно я завершил проект по отпиранию двери с помощью сенсорного экрана с пронесенной картой. Как решить проблему, когда MFRC522 не называет тип при запуске Arduino #include <SoftwareSerial.h> #include <Servo.h> #include <SPI.h> #include <MFRC522.h> #include <IRremote.h> #define SS_PIN 10 // customize the two PIN ports of the RC522 #define RST_PIN 9 #define RECV_PIN 5 // IR receive pins #define CARDS 4 //number of cards #define SERVO_PIN 6 // Servo port #define BUZZ_PIN 8 //buzzer pin long int IR_ID = 0xFFABCD; //define IR variable string ESP01S_Data = "". decode_results result. const byte User_ID[CARDS][4] = { {0xDD, 0xAA, 0xBB, 0x11}, // campus card {0xAD, 0x99, 0xDD, 0xEE}, }; //Save multiple card uid values MFRC522 rfid(SS_PIN, RST_PIN); //new RC522 object Servo myservo; SoftwareSerial EspSerial(3, 2); // RX, TX IRrecv irrecv(RECV_PIN);
-
Я хочу построить простой шлюз с arduino+nrf24l01+enc28j60, nrf24l01 принимает сигнал и enc28j60 передает его в LAN, но проблема в том, что и nrf24l01 и enc28j60 используют протокол SPI для взаимодействия с arduino, если я хочу использовать собственный lib разработки arduino, я могу выбрать только один из nrf24l01 и enc28j60, потому что они имеют общее определение (pins_arduino.h). static const uint8_t SS = 10; static const uint8_t MOSI = 11; static const uint8_t MISO = 12; static const uint8_t SCK = 13 Итак, решение состоит в том, чтобы выбрать nrf24l01 вместо использования lib development, которая поставляется с arduino, но использовать другой IO порт, который я разработал сам, это правильно?
-
Недавно я использовал Arduino для программирования stm32, и мне нужно использовать ШИМ-выход, но кажется, что частота фиксирована на 550 Гц. Я хотел бы знать, как изменить частоту ШИМ простым и легким способом. Например, я могу использовать analogWriteFreq(3000) для изменения частоты ШИМ на 3 КГц на ESP8266, но эта функция не работает на stm32. есть ли аналогичный метод для stm32?
-
Я считаю, что знакомиться с новым продуктом, создавая игры, очень весело и нескучно, и именно поэтому я сделал этот проект. Этот проект заключается в использовании Arduino UNO и lcd-дисплея Stone tft для разработки простой игры в крестики-нолики. Материалы, необходимые для эксперимента Arduino UNO tft lcd дисплей Stone STWI070WT-01 Принцип работы системы Задайте, что первое нажатие на экран должно быть O, второе нажатие на экран - X, проделайте этот цикл. Установите 8 массивов для хранения количества O и X в каждой строке, столбце и диагонали каждой сетки, до тех пор, пока есть три одинаковых знака является победа, то будет мигающий красный ящик, чтобы доказать победу строки, столбца или диагонали, а затем нажмите сброс, чтобы начать игру снова. Простая схема соединения Разработка графического интерфейса пользователя Прежде чем я размещу код, мне действительно нужно поблагодарить всех на форуме за исправление моей ошибки при загрузке. После решения этой проблемы, мой код был загружен на плату UNO без каких-либо проблем, что, наконец, позволило мне реализовать мой проект. Спасибо всем, кто помог мне! Здесь будет приложен демонстрационный видеоролик проекта.