Вы видите копию треда, сохраненную 16 мая 2019 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
Вопросы по основам радиоэлектроники НУЖНО спрашивать в первом прикрепленном треде на доске.
В данном треде обсуждается только Arduino и AVR (с использованием библиотек Arduino)
Коротко - о главном:
- Что такое Arduino?
- Ардуина - это конструктор из Atmega<X> и своей IDE с библиотеками, который будет выполнять написанные тобой команды - программу, или же просто - скетч.
- Что такое IDE?
- IDE - это ПО для разработки скетчей, брать тут -
https://www.arduino.cc/en/Main/Software
Профи берут ПО здесь -
http://www.besplatnyeprogrammy.ru/notepad.html
- Сильно ли я сосну, купив arduino your name, в плане того, что она использует 3.3в вместо 5в как у остальных?
- Если берешь побаловаться и закинуть, то строго похуй. Если какой проект мутишь, то тут уже смотря чем питать будешь.
- Как, например, я могу сжечь Arduino?
- Подать 5в на входы. И ещё 1000 способов от русского Ивана, не умеющего в инструкции.
- Зачем нужны всякие борды-хуерды?
- Чтобы ты не запорол своим лудилом из-за ошибок схематики пару сотен МК
- Я купил Arduino, но не знаю, зачем. Что делать?
- Идеи для анона -
http://cxem.net/arduino/arduino.php
http://arduino-projects.ru/
http://arduino-diy.com/arduino_proekty-0
- Я хочу вкатиться по-серьёзному, что делать?
- Читать -
http://publ.lib.ru/ARCHIVES/R/REVICH_Yuriy_Vsevolodovich/_Revich_Yu.V..html
- Я не умею читать, что делать?
- Смотреть годные каналы -
https://www.youtube.com/channel/UC7aH7HVqDvwB1xNHfSl-fDw
https://www.youtube.com/user/0arduinoLab
https://www.youtube.com/watch?v=bO_jN0Lpz3Q&list=PL944BA86E715C5FEE
- Я осознал, что могу мигать светодиодом в СОЗИДАНИЕ, что делать?
- Брать Arduino Starter Pack Edition -
https://ru.aliexpress.com/item/RFID-Starter-Kit-for-Arduino-UNO-R3-Upgraded-Version-Learning-Suite-Kit-Free-Shipping/32474968931.html
- МНЕ МАЛО
- Что ж, дорогой друг, настало время НАСТОВЯЩИК ПОД[/i]д[/i]ЕЛОК! -
Модулей MEGA PACK https://ru.aliexpress.com/item/37-Arduino/32243738985.html?spm=2114.03020208.3.2.4jB892&s=p&ws_ab_test=searchweb0_0,searchweb201602_2,searchweb201603_1&btsid=b1a99f64-582d-40eb-b72d-911e40363e74
- МНЕ ВСЁ ЕЩЁ МАЛО
- Поздравляю! Вы прошли игру. Самое время зарабатывать 300kk/sec и наставлять молодых оленят на путь истинный ITT
И помни, анон, ардуинщики - (не) дети
Предыдущий тред мигает там - https://2ch.hk/ra/res/228920.html (М)
BEZ RAZMETKI EDITION
Не легитимный
Замок, конечно, повешаю
Хочу собрать на данной платформе террариум. Потребуются несколько термометров с гигрометрами, мб датчики освещения, кулер, подогрев, ещё какие-нибудь датчики и подвижные компоненты, LCD.
На Али огромное количество китов, самих плат тоже много сортов.
Хватит ли мне пинов UNO?
Кулер - можно ли его слепить из китовых моторов? Можно ли будет таким путём управлять числом оборотов?
Обогрев - сейчас использую термоковрик, питающийся от розетки. Как быть? Есть ли специальные обогревательные элементы?
>Хватит ли мне пинов UNO?
Скорее всего да, если не хватит - пригородишь копеечный сдвиговый регистр.
>Кулер - можно ли его слепить из китовых моторов? Можно ли будет таким путём управлять числом оборотов?
Зачем тебе управлять числом оборотов, если можно управлять скважностью? Опять же можно и обороты контролировать. Не совсем понятно чего ты хочешь добиться и какой ценой.
>Обогрев - сейчас использую термоковрик, питающийся от розетки. Как быть? Есть ли специальные обогревательные элементы?
Есть реле и термодатчики. Есть и отдельно, и в виде модулей для ардуно.
Недавно залипал на ютубе и смотрел ролик про ТОП Х АХУЕЕНЫХ САМОДЕЛОК из говна и палок термоклея, самоделки хуита, я просто проигрывал с них, пытаясь понять, ЧТО ЭТО и НАХУЯ.
Так вот, там было, что ты описываешь.
https://youtu.be/Z0PRQpORWtg?t=2m25s
Брал для подобного тут https://ru.aliexpress.com/item/anuspsa/32601475834.html
>>256161
>Хватит ли мне пинов UNO?
да
>Кулер - можно ли его слепить из китовых моторов?
А от компа не пойдет тебе что ли?
>Можно ли будет таким путём управлять числом оборотов?
да
Обогрев - сейчас использую термоковрик, питающийся от розетки. Как быть?
>реле
Дети. Еслиб у меня в детстве был интернет с такими видео я бы тоже такое смотрел и собирал.
Залей и посмотри, что ты теряешь. Только фьюзы правильно расставь.
Есть твердотельное реле с детектором перехода через ноль. Планирую дергать его ардуиной интервалами по 20мс каждые 20мс, 40мс, 80мс и так далее в зависимости от регулятора.
Взлетит вообще такое?
Нужно ли сглаживать после реле ток каким-то конденсатором?
Нужно ли для маломощных моторов (до 100вт) городить какие-нибудь RC-снабберы и прочую защиту?
>Взлетит вообще такое?
Управлять мотором путем пропуска полуволн это пиздец.
Возьми изолированный драйвер вроде SI8261, парочку фетов IPD60R460, LC фильтр и фигач шим на 100+кгц.
Характеристику напряжения по времени нарисуй, если управлять импульсами. Просто нарисуй.
1) Как программно выдать минимальный промежуток времени? Надо чтоб цифровой выход был всегда HIGH, затем на самый минимальный промежуток выдаваемый ардуиной стал LOW, а затем опять был как обычно HIGH.
2)Я правильно понимаю что ардуина может выплюнуть минимальный промежуток (тик) 62.5 наносек в идеальном случае (1/16 мГЦ)?
3) Нужен вариант команды NOP? Чуваки с официального форума говорят что так нормально:
// add this to the top of your sketch
#define NOP __asm__ __volatile__ ("nop\n\t")
// and then use it in code as follows
NOP; // delay 62.5ns on a 16MHz AtMega
Мой вариант решения этого дела:
digitalWrite(4, HIGH);
digitalWrite(4, LOW);
digitalWrite(4, HIGH);
Ну то есть просто переход с одной команды на другую происходит за 62.5 наносекунд. Я прав?
>Надо чтоб цифровой выход был всегда HIGH, затем на самый минимальный промежуток выдаваемый ардуиной стал LOW, а затем опять был как обычно HIGH.
Вот если бы наоборот, можно было бы поставить керамический конденсатор оче малой ёмкости и при подаче на него HIGH через него очень быстро скакнёт. А наоборот хрен знает, может с конденсатором и транзистором можно что-то придумать.
Мимо ньюфаг
В идеале да, но неизвестно как ардуиновая среда тебе откомпилит эти 3 команды. нельзя ли там как на си написать PORTC.4=1?
Там это... Фьюзы ещё есть. Ты их менял?
Фьюзы ардуины требуют 16мгц кристалл. А код ардуины возможно требует 16мгц. А фьюзы под 16мгц без кристалла вообще кирпичат чип.
В общем сложно всё.
Нету ардуин на AtTiny 2313A. Ты чё там вытворяешь? Пытаешься код для одного мк (с кучей ног) залить в другой мк (с 8 ногами)?
Не случится.
Где покупать ардуинки подешевле? Алиэкспресс норм? Киньте пару ссылок на хорошие магазины продающие ардуины на алиэкспрессе.
И где на дваче борда по китайским магазинам? Первый раз покупать буду - кешбеки всякие стоит использовать? Как получить купоны за регистрацию, отзыв и тд.
В амперке и чипе с дипом.
Блять, мудак, ты хотя бы оп-пост можешь внимательно прочитать до конца?
Прочитал ещё раз, хуйло. Где там ответы на мои вопросы?
Алсо: качество китайских сильно плохое или можно использовать? Стоит купить подороже или можно брать самую дешевую?
> на си написать PORTC.4=1?
Зачем ты используешь такое говно как codevision?
PORTC |= (1 <<PINC4)
сам ардуино
https://ru.aliexpress.com/item/Free-shipping-UNO-R3-MEGA328P-ATMEGA16U2-for-Arduino-Compatible/32341836599.html?detailNewVersion=&categoryId=400103
gsm-модуль
https://ru.aliexpress.com/item/Free-Shipping-Smallest-SIM800L-GPRS-GSM-Module-MicroSIM-Card-Core-BOard-Quad-band-TTL-Serial-Port/32386736217.html?detailNewVersion=&categoryId=400103
питалово для gsm-модуля
https://ru.aliexpress.com/item/Power-Supply-Module-Replace-LM2596s-Mini-3A-DC-DC-Converter-Adjustable-Step-down-Power-Module-Top/32578893936.html?detailNewVersion=&categoryId=14191102
А вот с тем, как именно имитировать нажатие кнопки (замыкать цепь кратковременно), у меня возникла проблема. Подскажешь анончик?
ClockPoint = (~ClockPoint) & 0x01;
Я знаю, что она нужна для мигания точек на дисплее TM1637, но не могу въехать в синтаксис.
Привыкай, это /ra/, тут всегда так.
>>257523
Ну смотри. Я сам это недавно изучать начал.
Это всё битовые операции.
~ это вроде НЕ называется, оно из 0 делает 1, из 1 делает 0.
~0100 = 1011
& это И.
0101 & 1100 = 0100
0x01 это 00000001
И вот если у тебя ClockPoint это 00000001, то
ClockPoint = (~00000001) & 00000001;
ClockPoint = 11111110 & 00000001;
ClockPoint = 00000000
Получается:
Если ClockPoint = 00000000, то после твоей строки он станет 00000001
Если ClockPoint = 00000001, то после твоей строки он станет 00000000
Переключалка.
Вроде так.
wi-fi модуль не подходит по причине того, что комп в другом городе, а не в соседней комнате
Этот модуль не только умеет создавать точку доступа, но и коннектиться к ней и одновременно и быть точкой и законнектиться куда-нибудь.
Если рядом есть вайфай, коннекть ESP8266 в него и через интернет управляй им.
Самое простое - пусть скачивает .php страницу с любого бесплатного хостинга и проверяет должен ли быть включён комп. Если должен и не включён - пусть включает.
Вариант может и не плохой, но к сожалению, там нет wi-fi.
Да и всё-таки есть проблемка понасущней
>как именно имитировать нажатие кнопки (замыкать цепь кратковременно)
На материнке есть PWR_BTN пины или типа того, под кнопку. Вот их замкнуть надо.
Можешь оптопарой, можешь транзистором, можешь вообще объединить земли с материнкой и просто выдавать сигнал на пин кнопки. Можешь вообще запитать свою махарайку от пеки, там всегда есть +5 вольт standby (+5VSB)
>А вот с тем, как именно имитировать нажатие кнопки (замыкать цепь кратковременно), у меня возникла проблема. Подскажешь анончик?
1. ru.aliexpress.com/item/Hot-Sale-5V-1-One-Channel-Relay-Module-Low-level-for-SCM-Household-Appliance-Control-for/32316656858.html
2. https://ru.aliexpress.com/item/5V-DC-1-Channel-Solid-State-Relay-Board-module-High-Level-fuse-for-arduino/32419488549.html
Выбирай, но советую второй вариант.
Покупать 16мгц кристалл и паять его и прошивать фьюзы для него.
Без кристалла можно до 8мгц разогнать, там есть фьюз CKDIV8 (тут было долгое описание ада с фьюзами, но сам нагугли)
Но скорость будет не стабильна если что, без внешнего кристалла она вообще не стабильна.
В ардуинах стоят обычные кристаллы
https://www.aliexpress.com/item/a/32451641290.html
Дешевые, надёжные, твои.
причем тут программирование? там уже во первых всякие паразитные емкости и индуктивности появляются, во вторых принимающему устройству тоже нужно понять перепад не все сразу заработает. без наверняка только в идеале будет работать.
хоспаде спорим из за 5 циклов простоя контроллера
А если 5 не хватит? Вот эти всякие "наверняка" накодят, а ты потом ищи плавающий баг.
Если хочешь, чтобы ардуиновский код работал, то тебе сначала нужно в голый контроллер загрузчик ардуиновский загрузить.
Ну а обвязка то она у всех одна, кварц, кондеры, резистор подтяжки для ресета.
для этого нужно читать даташит и закладывать чтобы активный уровень был дольше минимального времени активного уровня на микросхеме
Тупо забить в гугол транслит
'i' was not declared in scope
'Я' не был объявлен в области видимости
Кристалл ещё по фьюзам настроить надо, а от генератора работать будет всегда. Только если не выставить убойные фьюзы и закрыть программирование.
Хули тут непонятного? Объяви i в начали функции loop() и убери int i в первом цикле или напиши int i во втором цикле.
Спасибо, только сейчас увидел где я объебался.
Ну то есть в устройстве будет недостаточно просто запаять чип, нужна еще будет обвязка вся?
Для таких, как я. Как подключать чип см. пик.
Как шить см линк 1.
http://robocraft.ru/blog/arduino/552.html
Как коннектить tqfp см. линк 2.
http://we.easyelectronics.ru/HomeTech/tqfp32---dip32-perehodnik-dlya-maketirovaniya.html
Но это ж не диммер, а просто связка оптопары и симистора, чтоб мощную нагрузку ардуиной включать.
https://ru.aliexpress.com/item/125Khz-RFID-Reader-Module-RDM6300-UART-Output-Access-Control-System-for-Arduino-Best-prices-Free-Shipping/32351392187.html
Хочу собрать сигнализацию на 6 герконов, 4-5 ик датчиков, 1-2 аудио-датчика, с ИБП и GSM. С чего начать?
Начать с гугления.
Покупаешь датчики, аккум. Покупаешь Мираж-GSM-M4-03 Стелс Контроллер GSM (или что-то такое, гугли сам) и подключаешь к нему все по инструкции.
Купить любой может. Например вот это http://www.maks3718r.com/makc3718pII.php Только оно дорогое. Красивый корпус, лицензирование, зарплата сотрудникам и прочее дает удорожание раза в два. Зачем мне это всё оплачивать, если я могу то же самое собрать сам и на оставшиеся деньги приделать туда ещё видеонаблюдение и средства воздействия на нарушителей? У них ИК датчик стоит 30 долларов, геркон 28 доларов, то же самое в проводном исполнении в виде платы стоит 4 доллара в изи-плаг формате
https://ru.aliexpress.com/store/product/2016-New-Keyestudio-EASY-plug-PIR-Motion-Sensor-Module-for-Arduino/1452162_32639615024.html
или 73 цента как деталька
https://ru.aliexpress.com/store/product/2016-New-Keyestudio-EASY-plug-PIR-Motion-Sensor-Module-for-Arduino/1452162_32639615024.html
Понимаешь о чем я?
Понимаю.
Ты хочешь что бы охранная сигнализация собранная на коленке из китайских запчастей, которая должна работать всегда, вырубилась из-за скачка напряжения, повышенной влажности или холода. Или просто так хуй знает из-за чего.
В эмуляторе ардуины напиши программу для ардуины.
После покупай ардуину и датчики. После докупи GSM-шилд (или сам его сделай купив только необходимые радиодетали, что бы сэкономить).
ИБП так же есть платы отдельно если ты не хочешь брать дорогой компьютерный ибп.
Собирай и радуйся проделанной работе.
>охранная сигнализация собранная на коленке из китайских запчастей
Много есть вариантов получше за разумные деньги? Предлагаемый оператором пультовой охрана МАКС 3718 Р собирается в Чернигове. Там же делают и разводку плат. Детали скорее всего те же, китайские. Сложно сказать что лучше.
>После покупай ардуину и датчики
Какую лучше брать? Пока нашел вот эту
https://ru.aliexpress.com/item/Free-shipping-MEGA-2560-R3-ATmega2560-R3-AVR-USB-board-Free-USB-Cable-for-Arduino-2560/32564461540.html
есть ещё такая
https://ru.aliexpress.com/item/Free-shiping-1SETS-Mega-2560-R3-Mega2560-REV3-ATmega2560-16AU-Board-NO-with-USB-Cable/32401565074.html
Чем они отличаются кроме наличия шнурка, цены и доставки? Похоже одинаковые.
ИК датчики буду брать эти. Их же можно сразу подключать или нужны какие-то междумордия?
https://ru.aliexpress.com/store/product/Free-Shipping-HC-SR501-Adjust-Infrared-IR-Pyroelectric-Infrared-PIR-module-Motion-Sensor-Detector-Module-We/343255_1564561530.html
Нашел вот такой GPRS-GSM модуль. Опять же, как его подключать?
https://ru.aliexpress.com/store/product/Smart-Electronics-GPRS-module-GSM-module-A6-SMS-Speech-board-wireless-data-transmission-adapter-plate/343255_32699587921.html
Ну и такой вопрос, там есть ещё УНО и НАНО, они мне подойдут или брать МЕГА? Я вообще первый раз имею дело с этими штуками, раньше только слышал о них.
http://arduino.ru/forum/proekty/sistema-umnyi-dom-dlya-zagorodnogo-doma-na-arduino-mega2560-hc-05-sim900dht113-kh-ds18
>или сам его сделай купив только необходимые радиодетали, что бы сэкономить
И сколько это получится по стоимости?
По моему нет ни одной в мире платы, которую дешевле самому спаять, чем купить готовую у китайцев.
Вот нужно тебе 3 конденсатора, ты или в чип дипе покупай по 20 рублей, или у китайцев набор из 300 штук за 100 рублей.
> чем купить готовую у китайцев
чот платы под газорязрядные индикаторы у них не видел, чтоб купить, а не собирать
мимо
>там есть ещё УНО и НАНО, они мне подойдут или брать МЕГА?
Хватит и нано, но на обычную уно проще шилды ставить. Для эксперементов удобнее. Единственное смотри по входам не упрись в количество, если хочешь тупо развести каждый датчик на свой вход, чтобы не городить лишней обвязки. Хотя все герконы например можно примитивно реализовать на 1 аналоговом входе поставив на них разные резисторы если вобще требуется знать какой сработал если нет то совсем похуй.
Мега отличается только количеством входов-выходов? Думаю брать сразу мегу чтобы потом ещё камеры добавить и газовые шашки. Так как газовые шашки одноразовые, то хотелось бы подрывать их по одной, в известной комнате и после видеоконтроля.
Можно сдвиговыми регистрами размножать выходы.
VirtualBreadboard
http://www.123dapp.com/circuits
Если хватит ножек, то тебе хватит даже atmega168.
Дохуя плат которые дешевле самому спаять, купив набор для самостоятельной сборки.
Обычная квартира, просто первый этаж и газовые трубы под окнами как ступеньки. Самые простые решетки на все окна стоят в 4 раза дороже всех нужных мне контроллеров и датчиков. Да ещё и двери к решеткам менять надо. Ну и впереди ремонт, начиная с бетонных стен. Ещё и мастера отказываются работать в условиях постоянной опасности ночной кражи инструментов. Короче решил обойтись электроникой.
>смотри по входам не упрись в количество
Значит сразу вот это брать? Как она правильно называется? 2560? R3? REV3? MEGA?
https://ru.aliexpress.com/item/Free-shiping-1SETS-Mega-2560-R3-Mega2560-REV3-ATmega2560-16AU-Board-NO-with-USB-Cable/32401565074.html
Ещё думаю реализовать питание в полторы батареи. То есть контроллер постоянно работает от батареи до половины заряда, потом переключается на вторую, полную батарею и ставит первую на зарядку. При дозарядке до полной - отключает и снова ждет до половины заряда рабочей батареи. Потом всё повторяется. Для продления срока жизни батарей. Взлетит?
Ебануться какой пердолинг. Так поставь сначала новые окна и решетки, а уж потом с мастерами делай свой ночной ремонт. Что за хуйню придумываешь тут?
Как же ты раньше жил?
На какую зарядку? Если есть питание зарядки, то почему не запитать от него плату?
Это я изобретаю контроллер заряда, чтобы батарея дольше жила. Как такие штук реализуют? Я где-то видел, что в упсах батареи быстро дохнут потому, что на них постоянно заряд подается.
Иногда проблема решается отключением и включением питания на самой ESP8266, после включения ардуино.
аноны, может купить вот такую залупу и не ебаться ?
https://ru.aliexpress.com/item/ESP8266-serial-WIFI-Witty-cloud-Development-Board-ESP-12F-module-MINI-nodemcu/32566502491.html?aff_platform=aaf&sk=VnYZvQVf:&cpt=1479369242598&dp=b0eb93c19b5f73e2ffd4fad169d21def&af=137788&cv=47843&afref=http://mysku.ru/blog/aliexpress/38586.html&aff_trace_key=96fdfb64bd31401db4ac25a06b7ea8b7-1479369242598-05592-VnYZvQVf&detailNewVersion=&categoryId=400103
Ардуиначую эту хуйню. Блинк работает без проблем и сама ардуина не нужна. Это одно из лучшего, что смог родить сумрачный узкоглазый гений. А еще там можно мигать RGB-светодиодом.
ISP нужно будет вывести, так? Или через TX RX можно прошить?
Спасибо анон
12v 8х реле с отдельным питанием и датчик температуры к этой залупе можно подрубить ?
Программируется с ардуино иде ?
Я в том плане что есть разница между программированием цыфровых пинов на ардуино и на ЕСП.
Пользуясь случаем прошу, реально ли вообще нормально программировать ЕСП с помощью ардуино ИДЕ ?
Мне вот интересно. Ты отдаёшь себе отчёт, что blynk коннектится в свои сервера и ты управляешь своим говном через них. У них все данные с твоих датчиков, управление пинами, наверняка чтение памяти, всё у них на каком-то там сервере.
Тебе это норм?
Меня вот этот факт тоже здорово выморозил. А еще ЭНЕРГИЯ в их приложении, монетизация, охуеть. Понимаю, что всем кушать хочется, но я покупал ардуину для ебли, а не для микроплатежей. Сам настрою, сам сервак в инете сделаю, обойдутся.
>>258482
Дело принципа. Краеугольный камень безопасности - не отдавать свои данные просто так непонятно куда. Сначала температуру сливаешь, потом вебку расшарил в инет, потом продакшен открыл третьим лицам, а хуле скрывать 127.0.0.1
>12v 8х реле с отдельным питанием и датчик температуры к этой залупе можно подрубить ?
К этой залупе можно подключить почти все тоже самое, что и к простой нанке/мини/уно даже твою мамку и аллаха.
>Программируется с ардуино иде ?
Да, только среду придется предварительно настроить. Детали тут https://esp8266.ru/arduino-ide-esp8266/
Sketch - набросок, в данном случае только лишь набросок программы. Да пиши как хочется, GSM через SMS или наоборот - читать мануалы по AT командам выбранного тобой модема.
Машинный код тот же, а там как компилятор откомпилирует.
Ну вот, например, вот этот.
https://ru.aliexpress.com/store/product/Smart-Electronics-GPRS-module-GSM-module-A6-SMS-Speech-board-wireless-data-transmission-adapter-plate/343255_32699587921.html
У него вообще есть мануалы? И как его к буратине подключать?
А хз. Спрашивай у продавца и читай мануалы на ломанном английском. Хотя должно быть всё просто: AT+CMGS="телефон" \r\n строка текста SMS #26
да, основная обвязка нужна будет. хотя можно и без кварца, но частота будет плавать при изменении температуры
> например, вот этот.
Купи SIM900 - он более распространенный и к нему больше всяких мануалов.
>Дело принципа. Краеугольный камень безопасности - не отдавать свои данные просто так непонятно куда. Сначала температуру сливаешь, потом вебку расшарил в инет, потом продакшен открыл третьим лицам, а хуле скрывать 127.0.0.1
А ты смищной, наверное и смартфоном не пользуешься из этого принципа?
Проблема внешних серверов не в безопасности, а в коннекте к ним. Забудешь оплатить интернет, и сасают твои махарайки.
>>Дело принципа. Краеугольный камень безопасности - не отдавать свои данные просто так непонятно куда. Сначала температуру сливаешь, потом вебку расшарил в инет, потом продакшен открыл третьим лицам, а хуле скрывать 127.0.0.1
Ты наверное совсем не в курсе что анонимность и безопасность в интернете это миф. Но да есть разумные пределы типа не вкладывать в интернет фото жоппы с супом или например то как ты ебешь пьяную тян в туалете. Что касательно другого, никакие торы и линуксы тебя не спасут если ты занимаешься противоправными действиями. А вообще всегда смешили вот такие вот мамкины анонимусы которые в фесбуке и вконтакте и типа этого не регистрируются только потому что там требуется аутентификация по телефону, но зато у них андроидофон который нашпигован зондами.
Здесь же заёбно инверсии бита делать... Вообщем, если есть какой-то способ обращаться к биту без лог. операций со всем битом, подскажите пожалуйста.
>c-контроллер
>с
Я ньюфаг, но по моему контроллер не на с работает. А компилятор мамку биты ебал твои, очевидно.
Я имел ввиду MCS-51 контроллер.
Алсо. Я выяснил, что продумано то, чего я хочу только для нескольких регистров, например - у регистра флагов первого таймера.
Балда, ты всегда пишешь в регистр и только в регистр. Перезаписывая всё его состояние.
>гироскоп в таком случае не нужен
Так а вот если я буду с разными скоростями двигать лопух, то акселерометра хватит на то чтоб измерять силу/скорость воздействия выдавая равное противодействие?
Ты че тупой?
Говорят тебе: смещаешь в сторону сервопривод, он возвращается обратно, если у него хватит механических свойств на это. Алсо, а если не хватит, то и гироскоп не поможет.
Кокой то страный у нее юсб.
Как ком порт не определяется, но шьется по мануалу.
Суть в чем - он в сериал базарить может? А то у меня не получается.
ньюфаг и ардуиноИДЕ
А то, это не очевидно само собой?
Я хочу на высоком уровне удобный способ быстро менять один бит, не прописывая сдвиги или операцию с шестнадцатиричным число.
Если здесь мне для задания режима 4 бита нужно писать: DDRB=DDRB|0x10;//или через <<
На кайле можно было написать DB4=1;
Как бы это дохуя короче и не путаешься где, что и насколько ты сдвинул.
Я другой кун - с сервопривода можно получить его положение? Например после включения устройства посмотреть в каком он положении.
Это во всех сервах или какие-то особенные нужны?
Ну функцию себе напиши ёпта. Типа
PortON(DDRB,5);
PortOFF(DDRB,5);
Хотя вроде это вообще через дефайны сделать можно. Тогда вообще
PortON(B,5);
PortOFF(B,5);
Но сам разбирайся как через дефайны объявлять эту хроень.
>с сервопривода можно получить его положение?
У меня был sg90, на нем нельзя.
Но можно задать ему угол, он встанет на него и будет сопротивляться изменению. Т.е. повернул его, а он обратно скрипит.
>PORTF |= 0b10000000
А разве обязательно здесь побитовое ИЛИ ставить? Тут же все равно весь регистр записывается.
Если не хочешь изменить состояние всего порта, то используй ИЛИ.
В PORTx состояние восьми портов. Если ты сделаешь
>PORTF = 0b10000000
То все порты, кроме восьмого отключатся.
Ну при условии, что DDRF = 0b11111111 но это уже совсем другая история.
Ты хочешь, чтобы тебе тут выложили готовую схему с прошивкой?
Покупаешь модуль часов, например такой ru.aliexpress.com/item/Free-Shipping-1PCS-DS3231-AT24C32-IIC-Precision-RTC-Real-Time-Clock-Memory-Module-For-Arduino-new/32314358327.html и по релюхе на каждый исполняемый механизм, например такие ru.aliexpress.com/item/Free-Shipping-1pcs-lot-1-Channel-Isolated-5V-Relay-Module-Coupling-For-Arduino-PIC-AVR-DSP/32392799916.html или сразу в пачке ru.aliexpress.com/item/1pcs-lot-4-channel-relay-module-4-channel-relay-control-board-with-optocoupler-Relay-Output-4/32340914033.html И пишешь скетч, и теребишь 13-й пин.
Для начала надо ардуину.
Затем шилд на 2 реле и шилд реального времени.
Так как у тебя этого нет, то наверное и нет смысла рассказывать про говнокодинг.
А так это задача с которой справится 5классник.
https://ru.aliexpress.com/item/Nano/32740641316.html
https://ru.aliexpress.com/item/2channel_shelk-shelk/32713335353.html
https://ru.aliexpress.com/item/RTC/32568716537.html
Я уже как-то писал об этом до покупки Witty cloud, думал дело в ESP8622 v1, и оказалось что хуй
Проверь каналы софтом для андроида или чем-нибудь, может твой роутер на самом нагруженном, тогда поменяй канал в настройках роутера.
спасибо анон, только вот думаю что это ничего не даст, т.к. в свое время ебался менял и каналы разные и ставил автоматическое определение.
Единственное что нашел в сети это вот
https://esp8266.ru/forum/threads/esp-lozhit-wifi-set-pri-podkljuchenii-v-rezhime-klienta.635/
И то там советуют убрать из wifi режим работы n, что пиздато так режет мою скорость. Возможно придется брать у кого-то роутер на тест.
Так вот, не работает, сама программа уже проверялась в работе, но именно с регистром не пашет. Куда копать?
>куча рассыпухи
Ну реле есть?
Так то можно и без часов реального времени. Особая точность то тебе не нужна?
Ты из какого города?
Че аноним что ли? Темы пидорские поднимаешь итт.
Есть Nano и датчик влажности и температуры и 3х фазный вентилятор на 200V. Задача чтоб ардуина читала периодически значение влажности и при привышении порога врубала вентилятор. Причем не просто замкнуть реле а сорт оф с линейной зависимостью скорости вращения от значения превышения порога влажности.
например влажность 50% и ниже - не крутим
50-60% - крутим 10% скорости
60-70% - крутим 30% скорости
70-80% - крутим 50% скорости
80-100% - крутим 70% скорости
С опросом датчика более менее понятно а вот как управлять вентилятором не знаю
Нужна это еботень для того чтоб когда ставишь машину в гараж - с нее тает снег и вентилятором создавало сквозняк и осушало машину.
Из дс, но реле на 220 нет, я думал может можно сделать костыли типа: имеется серва и переключатель на лампе оТ аквариума, и ну в общем это дичь, но модно ли просто сервой щелкать выключатель? Два раза в сутки
Не туда
>Из дс, но реле на 220 нет, я думал может можно сделать костыли типа: имеется серва и переключатель на лампе оТ аквариума, и ну в общем это дичь, но модно ли просто сервой щелкать выключатель? Два раза в сутки
ATTiny13 + датчик влажности + MOC3052 + BTA138 или BTA162. 10% скорости ни добиться на 220В, просто потому, что вентилятор не стартанёт. Придётся управлять синусом через симистор и делать пуск на 15 - 20%, а потом понижать до 10% плавно.
Спасибо за наводку, а есть уже готовые модули для MOC3052 + BTA138 или нужно будет сделать самому?
Есть готовые оптосимисторы, от 200 Вт, до 2000 Вт. Но они только ВКЛ/ВЫКЛ, регулировку сделать не получится.
Ищи по: triac module
http://www.ebay.com/itm/Aptinex-ESP8266-IOT-Triac-Module-4-Channel-/182332817441?hash=item2a73e20021:g:dHcAAOSwcUBYE1rd
>>259539
Вкачусь, пожалуй. Асинхронники плохо дружат с рваной синусоидой после фазоимпульсного регулятора. Тебе нужно будет анализировать напряжение сети, открываться и закрываться всегда в нуле, причем отсчитывать чётное число полупериодов. Такие дела.
Можно попробовать ШИМ килогерц на несколько и ключ на IGBT.
проиграл с твоего пика - автор будто тонко ловит лулзы нарисовав скучковавшихся попов словно пингвинов в стае. вангую, что это не так, но получилось забавненько
А чего ты добиться хочешь? Выглядит так, будто ты что-то делаешь неправильно.
Спасибо, наводка ушла! Анону добра.
>ESP.restart()
>delay (5000)
>ESP.reset()
Если же хочешь железное решение, то поставь вотчдог вроде max6369 (там есть задержка 10 и 60 секунд) и сбрасывай его дергая ножкой при успешном пинге.
Если хочешь еще сбрасывать питание, то возьми 3.3в стабилизатор со входом enable.
Делитель на резисторах собери чтоб с 5 снижало до 3.3 у входящего сигнала. А 3.3 вместо 5 для исходящего и так должно прокатить. Если нет, то тогда да, нужно что-то похитрее.
У меня такие проблемы http://arduino.ru/forum/obshchii/ne-opredelyaetsya-arduino-uno , но ничего из тех решений из драйверов мне не помогает. И ещё если к заднему usb подключить, то 2 светодиода мигают и в диспетчере SM контроллер шины с вопросиком появляется, я установил на него драйвер, но теперь вообще ничего не выходит. А если спереди подключать, то так же пишет USB\UNKNOWN.
https://ru.aliexpress.com/item/CP2102-USB-2-0-to-TTL-UART-Module-6Pin-Serial-Converter-STC-Replace-FT232-Module/1859102520.html#!
А ты шаришь.
>>260188
http://smart-chip.ru/wp-content/uploads/2014/10/DRIVER-CH340G.rar
>>260206
Шиндоус ос кокой?
>>260207
совместимы со всеми рукопожатие
У твоего 100% не оригинальный 2102-й чип, поебешься с дровишками знатно. Возьми лучше этот https://ru.aliexpress.com/item/1pcs-FT232RL-FTDI-USB-3-3V-5-5V-to-TTL-Serial-Adapter-Module-forArduino-Mini-Port/32650148276.html
ЭЭэ.. не понял. А что мешает его, блядь, тупо жестко закрепить? Нахера тебе все эти приводы,которые мотаются как хуй в рукомойнике, а потом героически возвращаются обратно?
Если нужно динамически менять направленность - реализуй жесткое крепление при достижении конечного положения, зажимом каким-нибудь, например.
Ты какие там охуенные мегаватты пытаешься сэкономить, заёбываясь с плавным управлением вентилятором?
Или у тебя не стоит задача тупо выгнать как можно быстрее всю влажность из гаража? Хуярь по полной по порогу, ну гистерезис реализуй, понятно.
http://sunon.ru/catalog/ventiljatory_postojannogo_toka_dc_1/ventiljatory_24vdc/ventiljatory_24v_120mm/pmd2412pmb1a/
Везде пишут, что диагностировать работу ИК-диода можно тупо смотря на него через камеру телефона... У меня такой номер нихуя не проходит, и просто смотрел, и видео записывал - хуй. Ничего не моргает.
Может это сраный эппл, или там какая-то хитрость?
>
Отбой, сам спросил сам ответил, взял старую нокию - в ней всё видно.
Интересно, а почему так.
Вобщем не поскупись и закажи оригинальные релюшки с базами от finder.
посчитал что потребляемый ток будет до 1 А (0.80 приблизительно). Есть смысл брать оригинал ? Хотя всегда имеет смысл брать оригинал наврное
Анон, подскажи пожалуста это правда что твердотельным реле можно управлять только переменным током ?
>всё это
Махарайки на пердуине?
Конечно. У меня например есть термометр-логгер. Еще куча костылей, например ебота которая делает timelapse снимки, ебота, которая выключает цирк.насос, когда жарко. Это не считая игрушек.
Гровер в хате, все в бокс.
Пойдет любое обычное реле, на мой взгляд. Только это, учти, если скажем ДНАТ на 300Вт, это не значит, что он вместе с пускалкой жрет столько же.
Выше по треду смотри, чел себе умный дом на этом построил.
https://www.youtube.com/watch?v=cv5xFGRHz28
2:00
Там всё очень просто внутри, можно самому собирать.
>>260326
Там симистор https://ru.wikipedia.org/wiki/Симистор который можно отключить только если через него ничего не течёт. Так что да, только переменка, иначе не отключится.
>>260295
>>260326
Вот вам 10 симисторов на 16 ампер за $1.89
https://www.aliexpress.com/item/5pcs-BTA16-600B-TO-220-BTA16-600-TO220-BTA16-600V-16A-TRIACS-new-and-original-free/32490797122.html
Вот вам 10 оптопар/драйверов, которые их будут включать $1.58
https://www.aliexpress.com/item/10Pcs-MOC3021-Random-Phase-Optoisolators-Triac-Driver-Output-DIP-6/32638426203.html
А как потом настроить это, подключить?
В интернете нашел почти то, что мне надо, но не совсем то. Как переделать код, чтобы сэмплы проигрывались при подаче сигнала с пьезодатчика?
http://www.dankemax.de/index.php?id=update-1&lang=de
https://www.youtube.com/watch?v=AQSF_icYNcc
5в реле 195р, 12/24в 145р. База на рейку 170р, база на плату 35р. И не жидись на пластиковый фиксатор, пружинка хуйня.
>>260326 Твердотельных реле много всяких разных. Есть на базе оптосимистора, они дешевые (особенно китайские подделки) но как любой другой симистор коммутируют только переменку и дохуя греются.
Есть на базе мосфетов, эти могут коммутировать постоянку или переменку/постоянку, нагрев при должном запасе по току минимален, но цена совсем не гуманная.
Другой вариант - добавить после ON пробел, который будет затирать F. Меньше кода, меньше операций.
Выводи как "ON_пробел" и "OFF". Это быстрее, чем экран весь чистить.
Всевозможные часы на семисегментниках, led-матрицах (на большее пока не способен) вполне себе работоспособны и используются уже полгода.
На даче пиздец как помогает, сделал себе автоматику подогрева бойлера, вентиляцию в подвальчике по датчику влажности, вотчдог перезагружающий 3ж-модем, когда пропадает интернет, дистанционное включение света по вайфаю и просто датчиками движения.
Ты вот эту всю хуйню на AVR Си писал?
Или всё на пижженых библиотеках?
Просто пришел мне набор пердуинщика, и я всё ещё не могу поверить, что для ардуино программирование не нужно
Обычно в погромизме 90% нужного кода уже написано. Ищешь готовые решения@копипастишь код@отлаживаешь под свои нужды. Достаточно понимать как он работает или просто понмать основы, чтобы понять описание и комментарии к коду. Заодно кодить научишься.
А по поводу "хуяк-хуяк - и в продакшн" - ардуиноподелки меньше ценятся, чем обычные сборки с православно запрограммированной атмегой и собранной платой вручную?
> 220В
Колхоз в данном случае не самое лучшее решение.
Я бы даже сказал ебанутое. Какой скачок в сети - и пизда всему
Могу предложить вариант: можно установить пакетный переключатель. Но количество режимов будет ограничено. Данная штука как-раз таки тот самый переключатель. Атмега тут в принципе не нужна. Нужен магазин электрики. Похоже на траллинг, честно говоря
1. МК заходит в прерывание таймера-1, делает какой-то короткий код
2. Далее встречает код, запускающий таймер-2 (и разрешает прерывание для него)
3. На этом прерывание таймера-1 заканчивается (МК вышел из функции). В это время таймер-2 "считает" задержку
4. Таймер-2 генерит свое прерывание
5. МК входит в это прерывание, отключает себя же (т.е. отрубает свое прерывание), выполняет некоторый короткий код.
Т.е. по сути получаем практически аналог ШИМ: период задает более низкочастотный таймер-1, а длительность высокого уровня считает таймер-2 (естественно, длина этого импульса не должна превышать период таймера-1).
Соответственно пишу такой код:
ISR (TIMER2_COMPA_vect) {
// some short code...
TCNT0 = 0;
TIMSK0 |= (1<<OCIE0A); // Start Timer0 (enable interrupt)
}
ISR (TIMER0_COMPA_vect) {
TIMSK0 &= ~(1<<OCIE0A); // Disable Timer0 (i.e. disable interrupt)
// another some short code...
}
На деле же выходит полная бессмыслица, значения в регистрах не соответствуют реальным временам (ну или так кажется, просто я изменяю граничные значения таймеров на ходу через Serial Monitor и проверяю их (считываю)) и прочая содомия. Что не так?
Мне сложно представить, как пакетный переключатель будет этим всем рулить. Можешь объяснить? Ведь этот программатор обладает часовым механизмом и медленно вращает стрелку и переключает режимы. Как это запрограммировать в атмегу я примерно представляю, вплоть до работы с реальным временем. Входы с датчиков, выходы на реле, включающие ТЭН, насос, двигатель барабана.
>>260634
> 220В
>Колхоз
На ардуине люди умные дома строят с датчиками затопления, газа и перекрытием клапанов на трубах, ну и регулировкой отопления и подогрева воды. Выглядит сложнее стиральной машинки.
Мне сложно представить, как пакетный переключатель будет этим всем рулить
У тебя на пике, блядь, хуйня без какого-либо таймера. Что там отсчитывать?
Вроде как эти эти экраны не умеют в кириллицу (но это не точно). Зато поддерживают набор из 8-ми кастомных символов. Для твоей фразы должно хватить.
Tbl nugop
>>260661
Дурак чтоле? Там тик тик.
>>260618
Уже обсуждали в предыдущем или в общем, поищи. Заебов там дохуя. Лично я запили управление мотором и ахуел (направление, обороты, несколько реле, симистор, переход через 0, чтение тахометра и тд) в общем на недопиленой библиотеке мотора так и хуй забил.
тэн, насос, набор - это просто. А вот адекватных программ стирки написать - заеб.
Одно только распределение белья перед отжимом и взвешивание колдовство с тахометром заебешься реализовывать.
Можно конечно тупо на делеях робоцыпу сделать, но это говно.
>>260646
или поставить светодиод
>>260655
прежде чем что то изобретать - посмотри на али (200р стоит)
проблему решил, надо было отключение прерывания перенести из второго в первое...
>экраны не умеют в кириллицу
Про эти не знаю, но вот те точно умеют в кириллицу. Главное купить такой в котором есть кириллица. Они под разные языки разные выпускаются.
>распределение белья перед отжимом и взвешивание
Всё так сложно? Ну да ладно, есть подозрение, что этот пакетник с таймером только переключает режимы во времени и подает нужные сигналы на бортовой компьютер. Всё может оказаться проще, чем кажется.
По какой фразе лучше искать упомянутое обсуждение?
>распределение белья перед отжимом
Купить отдельно акселерометр и смотреть его показания. Это в массовом производстве придумывают хитрые способы, а когда сам 1 шт делаешь проще заплатить 300 р. за датчик.
>производстве придумывают хитрые способы
>а когда сам
Пиздуешь и покупаешь программатор для жадных - бу, то что они придумали, очевидно по такой логике.
Так то и с дефолтным тахометром можно, ебли столько же почти, тк надо ЭКСПЕРИМЕНТИРОВАТЬ
>>260728
>есть подозрение
Что ты не уверен с тем что сломалось еще.
>сигналы на бортовой компьютер
Логика тут есть. Попробуй для начала разобраться в этих сигналах.
>По какой фразе
Не нашел, видимо смыло. спрашивай итт
>покупаешь программатор
Думал об этом. Оверпрайс по сравнению с атмегой в разы. Подключать атмегу я буду только при стирке, примерно раз в месяц заливая туда нужную прошивку. Всё остальное время смогу с ней экспериментировать. Когда придет время окончательно разобрать машинку на моторчики и релюшки у меня останется атмега, вместо очень устаревшего программатора с почти исчерпанным ресурсом. Кстати ресурс б/у - это кот в мешке. Как покупать б/у амортизаторы. Короче всё в пользу атмеги.
>ЭКСПЕРИМЕНТИРОВАТЬ
Parapapapa i'm lovin' it.
Уже нагуглил видосы по подключению этих движков и тахометров. Только судя по вот этим фоткам, там таки есть бортовой компьютер в виде мотороловского чипа на второй фотке. Думаю если ему подать нужный сигнал, сымитировав поведение программатора, то он с движком сам договорится.
>что сломалось
Пока что всё еще работает. Только есть странности. Например стопорится программатор при подходе к полосканию и если его заставлять работать дальше - начинают глючить режимы. Зато если дать пару часов постоять и перевести почти к отжиму, то отрабатывает как надо до конца. Есть подозрение, что перегревается шаговый двигатель программатора, например из-за засорения оси, или что-то другое. Точнее можно сказать только после разборки, которую я буду делать только имея на руках атмегу, деньги на которую только начинаю копить, чтобы иметь хоть какие-то шансы всё починить до следующей стирки. Читал по этим программаторам - они одноразовые. Соединения сделаны на заклепках в виде длинных люверсов. Контакты - тонкие медные лепестки, которые, возможно, стерлись. Если получится их нарастить и собрать всё это на болтах, если шаговый цел, тем лучше.
>разобраться в этих сигналах
После разборки этим и займусь, да. Через пару месяцев.
Ардуино как отладочная плата в продакшене не используется. (вообще случаи были, но это пиздец) Атмега (кристалл ардуины) - да.
>pro mini \
>>260790
>кот в мешке
Чаю.
>есть бортовой компьютер
Тащемто я нуфаг, но полагаю, что это как раз, та ебень, что управляет двигателем, ну шаговым может тоже. К ней должны идти провода от него и тахометра. Предположу, что с программатора туда идет пару 1\0 сигналов, типа стирка и отжим.
>странности
Я не знаю как работают СМА с механическим таймером, но обычные, если так себя ведут между полосканием и отжимом - часто(подтверждается соответствующей ошибкой) не могут избавится от дисбаланса.
Суть в чем, она потихоньку разгоняется до 200-300, измеряет стабильность показаний тахометра, если они выходят за пределы ануса, она останавливается, дает реверса и опять повторяет разгон и так пока равномерность ее не удовлетворит. Таким образом она распределяет ссаные трусы равномерно, чтоб на отжиме не ускакать в закат. Может повторять так много раз, но в итоге пошлет нахуй. Происходит это тогда, когда пизда подшипникам и люфтит.
Это все я так просто рассказываю, на всякий. Скорее всего конечно ебет мозг раздроченый программатор.
\
>ускакать в закат
Здесь другой случай. Останавливается ещё до слива, примерно в середине второго полоскания. После пары часов отдыха нормально сливает и ловит баланс. Если сразу выключить, подвинуть стрелку и включить, то повторяет один и тот же цикл в 5-10 оборотов постоянно при любом положении стрелки, может даже стоп пройти и пойти по второму кругу, повторяя этот короткий цикл. Поэтому я думаю, что там внутри за первые 30 минут что-то перегревается и отходит. Либо потому, что искрят загаженные контакты, либо потому, что грязная ось тормозит шаговик и он греется.
Кстати, пока искал фотки внутренностей, обнаружил у стиралок мозги, выглядящие помощнее ардуинских. Например как эти. Подобные многоножки есть и в другой технике, в том числе старых пеках. На их основе можно поделки строить? Их же как грязи.
>>260739
Как ты это себе представляешь? Ты же тралишь, да?
Когда начала выёбываться стиралка (наливала и почти сразу сливала воду) тоже думал запилить ардуину с несколькими реле, благо никакой электроники я на блоке управления не нашел, тупо контакты. Мотор без тахометра. Никакой сложной логики перед отжимом я не замечал.
Сейчас стираю через костыль - ставлю таймер на блоке управления чуть позже начала, пока работает.
>На их основе можно поделки строить
Ты имеешь в виду МК? Лично я тупая хуйня. Например я покупал STM и нихуя не смог разобраться, кроме поморгать. То же и с этими буде, к тому же многие из них полочены от заливки прошивок.
>STM
>нихуя не смог разобраться
Сука ору с ардуино детей, мимо программировал AVR-ки в AtmelStudio, теперь перекатился на STM32 и божественную связку STM32Cube + Keil. Хули блять сложного прочесть пару мануалов или если совсем дегенрат - посмотреть видеоуроки и написать свой говнокод на ебаной сишке, которая не меняется из года в год в отличии от других яп, уже все разжевано до твоего рождения.
Может человеку хочется заняться чем-то таким, но у него не так много времени и нет желания погружаться во всё это. Ардуино для этого и создана в основном для прототипирования конечно, но и для этого. Теперь каждый может почувствовать себя хекером электронщиком гуру схемотехники и повелителем паяльника и автоматизации.
>в основном для прототипирования конечно
Худшее что можно сделать с ардуиной, потому что тебе потом все равно придется все писать заново с нормальными либами и компилятором, по сути ты делаешь двойную работу. Это как написать прототип сайта на говеной CMS, а потом делать его на нормальном фреймворке. Единственное что можно сделать на ардуине это махарайку для себя, которая потом будет пылиться в столе, потому что китайцы уже сделали это дешевле и лучше.
собираешь 5000 ардуинок последовательно каждая выдает по 5 вольт, в итоге ебашит прямоуголником напряжение 25 тысяч вольт чистоганом, а реально и того больше - 40 киловольт!
Математика великая штука: 5000*5=25 000 вольдЪ
>тебе потом все равно придется все писать заново
А вот хуй. Я не электронщик, мне ваш продакшен нахуй не сдался. Я в ардуино как в лего играю.
Другой анон.
Можешь посоветовать что-то из отечественных МК? Уровня Ардуино или серьезнее. Ну и желательно местной сборки.
Всем советую STM, серьезно, у китайцев отладочная stm32f030 стоит 150 рублей, stm32f103 (который мощней лол) - 120 рублей, при этом они уделывают любую ардуину абсолютно по всем характеристикам.
>>261345
Я на днях отвечал в ардуино-тред в /б/, даже сохранил, чтоб открывать глаза ардуинщикам:
На али STM32F030 стоит 30 руб штука, отладочная с ней 130 руб, программатор 135 руб. За 30 руб тебе дают 48MHz камень с 5-ю многоканальными 16 битными таймерами (почти во всех дешевых атмегах 16 битный таймер всего 1), несколько каналов DMA (чего в атмегах нет совсем), i2c, spi, uart, прерывания можно устанавливать на любой GPIO и еще много чего другого.
Самое смешное, что STM32F103 отладочная стоит 120 руб, за которые ты получаешь 72 MHz, встроенный USB, встроенные часы реального времени с ножкой для батарейки, еще больше периферии (таймеров, i2c, spi, uart, dma, can, ...).
>пока пытаюсь изучать, но не до могза костей, чтоб на асме писать
На асме пишут только конченые ретрограды и дауны не осилившие C, посмотрел бы я как ты будешь на асме писать код для usb девайса (не обоссаного uart c rs232, а полноценного usb hid), который собирает данные с кучи датчиков на разных шинах и аналоговых входах, обрабатывает все это и общается с пекой через полноценный интерфейс.
>>141215938
>STM сложнее
Ебать ору, ты наверное даже не пытался погуглить почитать 10 мин или посмотреть пару видео. Ставишь STM32Cube, в котором через гуи настраиваешь периферию, потом генеришь код под один из 5 редакторов (Keil наше все) и сидишь пишешь свой код.
>>141216646
>Ну ведь скорее всего кроме стандартной ide наверняка можно использовать другой нестандартрый C/C++ инструментарий. А если не нравятся либы то пиши сам раз такой умный.
Ну да, я достаточно умный чтобы не жрать говно. Другой инструментарий это Atmel Studio, но у тебя нищееба нету денег, что бы купить нормальный программатор с jtag и наслаждаться написанием кода и его отладкой в человеской ide.
Когда человек додумается, нахуя ему
> 48MHz камень с 5-ю многоканальными 16 битными таймерами, несколько каналов DMA, i2c, spi, uart, прерывания можно устанавливать на любой GPIO
то он сам купит STM32.
А пока он светодиодом мигает, нахуя ему 48Mhz камень?
Потому что эти камни стоят столько же, а местами и дешевле, чем обоссаная atmega328 в uno, про все остальное написано выше, так нахуя покупать устарелое говно и пачкать им руки, только потому, что его расхайпали в виде ардуины школьники и неосиляторы.
Ты забываешь про бульон экосистему. Тонны, миллионы гайдов и примеров по ардуине для новичка. А STM - более продвинутый уровень, мануалов меньше, пишут их уже продвинутые люди, которым вдаваться в основы незачем, вот и получается хуйня, а не старт.
Гайдов по stm дохуя, в том числе и на русском, даже несколько каналов есть на ютубе, где рассказывают как что делать.
Бля, я попытался вкатиться в STM, я даже смог поморгать светодиодиком на макетке. Но эта сука IDE просто не хочет работать! Я попробовал Keil, я попробовал обложку к Eclipse, я поставил конструктор первичного кода настроек. Но оно не компилируется! Я читал гайды, курил маны, бочки делал уже. Не получается. Через месяц ещё раз попробую, ибо 72 МГц на самой мелкой из серии - уж очень прельщают, если я столько могу на 16 или 8 МГц.
Нет. Язык Wiring.
Остается только запилить тред и собрать всё это в шапку.
Вопрос про отечественные МК остается в силе. Пока нашел вот эту статью на руксперте http://ruxpert.ru/Российские_микропроцессоры
>в простом языке программирования
в петушином языке программирования
>>261384
>Но эта сука IDE просто не хочет работать!
Хз что с тобой не так, пробовал через еклипс и coocox IDE - обе хуйня полная, с Stm32Cube + Keil я открыл для себя рай разработки под МК, это даже лучше чем AtmelStudio, которую я тоже боготворю за ее инструменты отладки и навигации по проекту.
>>261387
Эти шилди ты можешь и к STM подключать. Если ты под скетчами подразумеваешь примеры, то при работе с STM32Cube они есть в папке с HAL для каждой версии ядра (например STM32Cube_FW_F1_V1.4.0), там и вся периферия и примеры работы с FatFS, RTOS, тачскринами, созданием usb девайсов.
Ну и немного скринов самого куба и кейла.
>для каждой версии ядра
То есть старые программы нужно каждый раз перепиливать под новые версии и следить за изменениями?
Перепиливать не надо, изменения в основном касаются добавления новых камней/отладочных плат и оптимизации, при этом тебе не обязательно использовать последнюю версию, можешь оставаться на старой сколько тебе будет угодно.
>На али STM32F030 стоит 30 руб штука, отладочная с ней 130 руб
>STM32F103 отладочная стоит 120 руб
Пока ты здесь, накидай ссылок что-ли. Посмотрел на али, там совсем другие цены. Ну и заодно на русские каналы и гайды, которые ты признал годными. По своему опыту освоения ардуино могу сказать что первое время 80% времени уходило на пересмотр шлака.
STM32F030 отладочная 130 руб - https://ru.aliexpress.com/item/STM32F030F4P6-Small-Systems-Development-Board-CORTEX-M0-Core-32bit-Mini-System-Development-Panels-48-MHz/32744863422.html
STM32F103 отладочная 115 руб - https://ru.aliexpress.com/item/STM32F103C8T6-ARM-STM32-Minimum-System-Development-Board-Module-ForArduin/32282374854.html
Отдельно микрухи ищи сам, я брал по 30 и 70 рублей за штуку соответственно, но у тех продавцов их больше нет.
Каналы, на одном нормально объясняет принципы работы аппаратной части, на другом программной:
https://www.youtube.com/user/Sappise/videos
https://www.youtube.com/channel/UCG6ukCIfzURcjdq4T7vxJKA/videos
Но лучше ситать чем слушать их гнусавые голоса:
http://microtechnics.ru/category/mikrokontrollery/stm32cube/ - тут несколько страниц со всеми необходимыми примерами с использованием STM32Cube
http://easystm32.ru/ - по названию сайта понятно (но они в старых статьях использовали ебаный SPL вместо HAL, который пришел на его замену, поэтому из тех примеров имеет смысл только теоретическую часть брать)
Ну и до кучи, если того мало:
http://alex-exe.ru/category/radio/stm32/
http://catethysis.ru/stm32.html
А вообще все что тебе может понадобиться из примеров находится в
>папке с HAL для каждой версии ядра (например STM32Cube_FW_F1_V1.4.0), там и вся периферия и примеры работы с FatFS, RTOS, тачскринами, созданием usb девайсов.
Да не слушай ты этого кукареку. Если тебя устраивает ардуина, то и сиди на ардуино. Если хочешь заниматься сюриозной электроникой в рашке, то просто забей. Больше 1к даларов в месяц хуй заработаешь, даже если в регионе. Хотя к примеру с ЦОС дела чуть получше обстроят. Электроникой в рашке заниматься можно для себя и не больше. Хочешь заработать денег, то пиздуй в нормальное IT. В nvidia в московии сейчас ищут джунов тестировщиков и разработчиков. Там им платят 2к даларов со старта. Знания минимальные нужны, cuda, знания C на уровне прочтения и понимания ANSI C и знания иглиша на уровне ответить на письмо тимлида.
Ссу в ротейщик всем мамкиным коколектронщикам.
Как же заебали эти мамкины электронщики с их МК. Кокок купи ARM ококок вот это лучше кукареку. Да мне насрать на твоё ЛУЧШЕ. Я блядь под ARM софт собирал, когда ещё первые андроиды начали выходить.
Программирования под МК это ебанный аттракцион, где нет не стандартов, не правил чистого кода. Нихуя нет. Не одного юзей гайда. Нихуя просто. Весь код под МК это ебанный не масштабируемый говнокод, который написан только для того, чтобы кое как работать.
Это блядь ещё ничего. Говнокодеры настолько ебанулись, что они проектируют сейчас фильтры во всяких матлабах и ФИЛЬТРМХ, конвертируют код в кресты, а потом его заливают в МК. Ты представь какие блядь мамкины пругрумисты. Написали 3 команды, посмотрели глазами на графики и записали в МК.
А ещё больше меня поражают петухи, которые пишут на асм в 2016. Это просто ебанутые дауны, которые нихуя не понимают как работает компилятор. А главный их аргумент ПОСМОТРИ ЧТО ТУТ ЗА КОД Я ТАКОГО НЕ ХОТЕЛ. А у самих в коде блядь каждая функция возвращает указали в пустоту юлядь и принимает тоже самое. А для область видимости для таких петушар это вообще что-то на уровне взлома пентагона. КОКОК Я ТАКОГО НЕ ХОТЕЛ ТУПОЙ КОМПИЛЯТОР. ТЫ ЕБАНУТЫЙ СУКА НАУЧИСЬ ПИСАТЬ ЧИСТЫЙ КОД И КОМПИЛЯТОР БУДЕТ РАБОТАТЬ ЛУЧШЕ ЧЕМ ТВОЯ МАМКА В СОВКЕ.
СУКА КАК ЖЕ У МЕНЯ ГОРИТ ОТ ЕБАННЫЕ ПРУГРУМИСТОВ МК. Ебанные чертилы СТРАУСТУПА БЛЯДЬ ПОЧИТАЙТЕ ХОТЯ ТЫ. ЕБАННОГО СТРАУСТУПА и ANSI C ВАМ БЛЯДЬ СЛОЖНО ЧТО ЛИ ПРОЧИТАТЬ ЕБАНЫЕ 2 КНИГИ ЧТОБЫ ПОНЯТЬ, ЧТО ИСПОЛЬЗОВАТЬ STL НА ARM ЭТО ЕБАНУТАЯ ИДЕЯ. СУКА
Да не слушай ты этого кукареку. Если тебя устраивает ардуина, то и сиди на ардуино. Если хочешь заниматься сюриозной электроникой в рашке, то просто забей. Больше 1к даларов в месяц хуй заработаешь, даже если в регионе. Хотя к примеру с ЦОС дела чуть получше обстроят. Электроникой в рашке заниматься можно для себя и не больше. Хочешь заработать денег, то пиздуй в нормальное IT. В nvidia в московии сейчас ищут джунов тестировщиков и разработчиков. Там им платят 2к даларов со старта. Знания минимальные нужны, cuda, знания C на уровне прочтения и понимания ANSI C и знания иглиша на уровне ответить на письмо тимлида.
Ссу в ротейщик всем мамкиным коколектронщикам.
Как же заебали эти мамкины электронщики с их МК. Кокок купи ARM ококок вот это лучше кукареку. Да мне насрать на твоё ЛУЧШЕ. Я блядь под ARM софт собирал, когда ещё первые андроиды начали выходить.
Программирования под МК это ебанный аттракцион, где нет не стандартов, не правил чистого кода. Нихуя нет. Не одного юзей гайда. Нихуя просто. Весь код под МК это ебанный не масштабируемый говнокод, который написан только для того, чтобы кое как работать.
Это блядь ещё ничего. Говнокодеры настолько ебанулись, что они проектируют сейчас фильтры во всяких матлабах и ФИЛЬТРМХ, конвертируют код в кресты, а потом его заливают в МК. Ты представь какие блядь мамкины пругрумисты. Написали 3 команды, посмотрели глазами на графики и записали в МК.
А ещё больше меня поражают петухи, которые пишут на асм в 2016. Это просто ебанутые дауны, которые нихуя не понимают как работает компилятор. А главный их аргумент ПОСМОТРИ ЧТО ТУТ ЗА КОД Я ТАКОГО НЕ ХОТЕЛ. А у самих в коде блядь каждая функция возвращает указали в пустоту юлядь и принимает тоже самое. А для область видимости для таких петушар это вообще что-то на уровне взлома пентагона. КОКОК Я ТАКОГО НЕ ХОТЕЛ ТУПОЙ КОМПИЛЯТОР. ТЫ ЕБАНУТЫЙ СУКА НАУЧИСЬ ПИСАТЬ ЧИСТЫЙ КОД И КОМПИЛЯТОР БУДЕТ РАБОТАТЬ ЛУЧШЕ ЧЕМ ТВОЯ МАМКА В СОВКЕ.
СУКА КАК ЖЕ У МЕНЯ ГОРИТ ОТ ЕБАННЫЕ ПРУГРУМИСТОВ МК. Ебанные чертилы СТРАУСТУПА БЛЯДЬ ПОЧИТАЙТЕ ХОТЯ ТЫ. ЕБАННОГО СТРАУСТУПА и ANSI C ВАМ БЛЯДЬ СЛОЖНО ЧТО ЛИ ПРОЧИТАТЬ ЕБАНЫЕ 2 КНИГИ ЧТОБЫ ПОНЯТЬ, ЧТО ИСПОЛЬЗОВАТЬ STL НА ARM ЭТО ЕБАНУТАЯ ИДЕЯ. СУКА
Я тебя найду и зарежу нахуй
Что несет пиздец просто. Какое IT, какая nvidia, меня твои истории просто доебали уже, никто тут не говорит про работу на кого-то. С пуполяризацией МК у тебя есть возможность зарабатывать нихуя не делая. Что тебе мешает создать электронное устройство, или даже несколько устройств, и продавать его для начала мелкосерийно, а потом выйти на серийное производство, причем ты можешь их продавать в 1,5-2 раза дешевле аналогов в магазинах (которые кстати собраны на коленке с самотравленными печатками лол, сам разбирал пару таких девайсов для предприятий), например:
http://phantom-stab.ru/catalog/reg-moshnosti/rm-2
http://250v.ru/goods/Regulyator-moshhnosti-RM-2-2
http://огород-21век.рф/categ5001_5002_5003.html
http://minifermer.ru/category_12.html
Ты блять видел эти цены, и это довольно покупаемое оборудование, можно сказать бытовое, прошивку для которого напишет даже ебаный даун и которое по себестоимости стоит хуйню. Сидишь пишешь свой код, добавляешь новые функции, разводишь печатку и делаешь ее сам или заказываешь (благо у китайцев можно заказать пробную партию в несколько штук), запихиваешь все это в корпус на ДИН рейку и выставляешь в инете на доске объеявлений/торговой площадке или договариваешься с мелким магазином в твоем мухосранске. И все блять ты можешь забыть о такой хуйне как работа, на которую ты проебываешь 2/3 своей ебаной жизни (остальную треть на сон).
Кстати, да. Раньше думал - оо, ебать, РЕГУЛЯТОР АВТОМАТИЧЕСКИЙ ЭЛЕКТРОННЫЙ, охуеть какая штука.
Потом захотел собрать часы на ГРИ, и по уши нырнул во всё это дерьмо. Чему удивлялся раньше - теперь просто смеюсь.
Мимо
Тебе нужен датчик угла поворота к примеру для начала
Замолчал что-то. Короче. После того как ты найдёшь датчик угла поворота. Тебе нужно будет его воткнуть в какую нибудь мостовую схему. Мостовая схема будет тебе выдавать сигнал о повороте в виде напряжения. Конечно запитать и рассчитать мост можно так, чтобы на выходе было 0-5V, но если не хочешь, сигнал нужно будет ещё нормализовать с помощью какого нибудь инструментального ОУ. Дальше это можешь засовывать в свою ардуину. Всё. Осталось только написать скетч, который интерпретировал эту инфу в цвета на RGB ленте.
Бля проиграл. Хуй знает, чья правда у вас тут, но пост повеселил, да и весь срач. СТМку таки закажу еще раз, ту проебал.хуй, который не смог в стм >>260824
>>261501
>>261515
По мне так в этом случае надо тупо переменный резистор поставить как датчик угла.
Считать с резистора положения крайние
val = analogRead(A0);
например это будет 150 при закрытой и 850 при открытой.
и на всякий случай установить их диапазон
чтоб отрицательных значений не хапнуть, когда разболтается
constrVal = constrain(val, 150, 850);
Потом привести эту цифру к диапазону ШИМ
pwmVal = map(constrVal, 150, 850, 0, 255);
Потом сделать шим цветов:
pwmRED = pwmVal;
pwmBLUE = map(pwmVal, 0, 255, 255, 0);
ну и все
analogWrite(redPin, pwmRED);
analogWrite(bluePin, pwmBLUE);
Отключение надо, когда закрыто?
И не забудь, что пердуина не потянет ленту напрямую, надо драйвер городить.
затем выяснить диапазон
Переменник на полоске сотрётся быстро. Переменник на проволоке - где их сейчас искать? Датчик Холла.
Если не надо много ног - STM32F030F4P6 (15 из 20 ног доступно), иначе - STM32F103C8T6 (37 из 48). Впринцыпе STM позиционирует F030 как замену 8-и битных контроллеров (хотя у них есть STM8 линейка, но я ими никогда не пользовался), а F103 уже с идет ядром cortex-m3 и кучей всяких наворотов при этом стоя копейки.
Или это исключительно свистелка-перделка для развлечения в свободное время?
Разрабатывать устройства на нём.
attiny24a и attiny24 наверняка имеют те же диапазоны в памяти для программ. Я так atmega8 и atmega88 шью. Только файлы заголовков при компилировании разные.
Детей обучай.
Вот я беру два камня в их минимальной обвязке. Смотрю на ATMega2560, потом на STM32F103C8T6, снова на ATMega2560, и понимаю, что к STM32F103C8T6 нужно какое-то дополнительное оборудование. С одной стороны хорошо, что в изделие зашивается только нужная масса, габариты и стоимость. С другой стороны, что к STM32F103C8T6 нужно дополнительно и как оно подключается и работает?
Тебе нужен к ней только программатор st-link v2 (130-140 руб на али), чтоб прошивать и отлаживать код, а так там есть все необходимое: два кварца, кнопка сброса, перемычки выбора загрузчика, usb на который выведен usb контроллера (не USART) ну и преобразователь 5-3.3 В с рассыпухой на обратной стороне платы запаяны. На плате с атмегой просто еще есть переходник USART<->Serial и пара светодиодов индикации.
Например сделать умный дом на проводной связи, с датчиками движения, герконами, датчиками утечки воды и газа, клапанами перекрытия воды и газа, климат-контролем, сиреной, GSM модулем, проводным модемом, видеофиксацией, в том числе облачной, и контролем зарядки батарей.
Поясните мимоньюфагу. Знаю основы атмег, там сначала в DDRx записываешь биты для портов, которыми хочешь управлять, потом в PORTx пишешь биты - сигналы портов.
А в STM как портами управлять? Там всё совсем подругому?
На уровне регистров точно также, просто этих самых регистров там больше, но ребята из STM сделали такую штуку как HAL (Hardware Abstraction Layer):
https://ru.wikipedia.org/wiki/Слой_аппаратных_абстракций
С ее помощью ты просто вызываешь функцию и передаешь в нее порт, пин и значение для записи к примеру. Это позволяет легко переносить код с одного контроллера на другой не только в пределах одного семейста (например Cortex-M0), но и на другое семейство (например Cortex-M4). Отпадает необходимость полностью переписывать инициализацию и обработку периферии, за тебя это делает HAL, а ты пишешь только функционал и интерфейс программы.
И вообще, я почитал вас тут и понял, что если всерьез заниматься МК, то вместо того, чтобы учить тупиковый Wiring и работать на железе, предназначенном для прототипирования, стоит сразу погружаться в Си и промышленное железо типа ST. Так ведь?
В Си погружаться стоит в любом случае, с его помощью ты сможешь программировать любой контроллер, а вот выбор самого контроллера зависит уже от личных предпочтений. Просто AVR имеет немного дурную репутацию из-за торможения развития своего железа (за последние лет 7 мало что изменилось, как пользовались атмегами так и пользуются, а иксмеги и их новые кортексы стоят дохера и на самом деле так себе по сравнению с STM32). Поэтому STM-ки захватывают эту нишу, все больше появляется бытовых девайсов с их использованием вместо атмег.
Рассматриваю это как задел для будущего устройства на работу. Например выучу я Си и ST на уровне умного дома. То есть соберу по видео-гайдам железо и прошивку из копипасты. Возьмут меня на зарплату выше средней вправлять мозги автоматике, желательно с командировками, желательно по всей стране? У меня знакомый что-то похожее делал по городу, ездил с ноутбуком по точкам, подключался в щитках к автоматике и настраивал. Норм зарабатывал, правда давно это было.
В случае с работой на дядю, разработка железа совсем не похожа на клепание сайтиков, не достаточно знать стека программных технологий, в 99% случаев от тебя будут требовать еще знание схемотехники, хотя бы на уровне понимания как работают резисторы, емкости, зачем и где нужны подтяжки и много чего другого. Я например делаю девайсы на продажу (написал прошивку, развел плату, заказал с али все детали, остается только спаять, прошить и запихнуть в корпус), что для меня намного проще чем сидеть каждый день в офисе и 8-10 часов ебашить говнокод по ТЗ, лишь бы угодить заказчику.
В офисе я уже свое отсидел, спасибо. Меня больше интересует вправлять мозги уже готовому железу на объектах корпорации, разбросанных по всей стране. Или хоть по области. Поступил сигнал, выдали командировочные на бензин, еду и гостиницу, или просто на поезд туда и обратно и паек, поехал, подключился к какой-то вышке-ретранслятору, насосной системе, зерноуборочному комбайну, боевому роботу охраны периметра, перепрошил, потусил в новом месте и уехал. Тянет рандомно шастать, желательно в комфорте и за деньги.
Такая работа есть, но ее мало и она узкоспециализированная, например обслуживание GSM станций или ПЛК вроде Siemens SIMATIC для термопластавтоматов. Хз как такие вакансии искать, думаю начальство туда своих знакомых пристраивает, так как работенка не пыльная и платят норм.
>GSM станций или ПЛК вроде Siemens SIMATIC
Во-во, ты понял о чем я. Стоит начинать с прошивки STM на Си или обмазаться сразу чем-то особенным?
Сначала попробуй вообще найти хотб какую-то похожую вакансию, чтоб иметь представление какие там требования. Просто Си + контроллеры обычно подразумевает под собой разработку, а не обслуживание.
Для Симатика Си нахуй не упал, там своя среда разработки. Да и вообще во всех пром. контроллерах. FBD STL и прочая хуйня. Более чем достаточно. Си там, разве что какие-нибудь хитрые модули всовывать.
> вправлять мозги уже готовому железу
Тебе нужно прочитать инструкцию к тому устройству, а не СИ учить.
Измеряй напряжение на датчике положения педали или датчике положения дроссельной заслонки и меняй цвет. По OBD можно так же получить процент нажатия педали.
Хз, я когда дебажил код, часто копался в исходниках того, что он генерит (HAL). Так вот там все очень красиво и лаконично написано, используются структуры, возвращаются состояния, обрабатываются все возможные события, причем сами обработчики очень удобно сделаны через __weak функции. Кароче я б не постеснялся такой код запихнуть в какую-нибуть промышленную йобу.
Ты говоришь об использовании слова бомбануло?
Если о стм, то я сразу сказал тут >>260824
>Например я покупал STM и нихуя не смог разобраться
это была плата STM8S-DISCOVERY (п1) и она работала от УСБ сразу. Потом тут мне насоветовали взять с али и я заказал STM32F103C8T6 ARM STM32 Минимальная Система Развития Борту увидел там УСБ и подумал - что она будет подключаться к компу.
А потом сказали, что надо еще и прохрамотр, тут я и разозлился, но тоже заказал.
Ебанутый? Ну да, немного, больше проблема, что я нуфаг.
>STM8S-DISCOVERY
Там возле usb уже запаян программатор ST-LINK. Он запаян на всех официальных платаха от ST, чтоб не покупать его отдельно (их оригинальный программатор значительно дороже китайского клона стоит). Причем ты можешь использовать его, чтоб программировать и другие платы, там должны быть перемычки и разъем программатора.
Тот usb, о котором я говорю - это аппаратный usb, с его использованием твой контроллер будет распознаваться как полноценный девайс любой современной ОС без необходимости драйверов, и с кучей разных плюшек (в отличии от USART-Serial, являющимся всего лишь виртуальным ком-портом, для которого еще и драйвера нужны). При этом ты его можешь настроить чтоб он был:
- Audio Device - что-то типа usb звуковой карты
- Communication Device (Virtual Port Com) - просто передача данных туда сюда, как с USART
- Download Firmware Update (DFU) - загрузчик прошивки
- Human Interface Device (HID) - клавы, мыши и прочие устройства ввода-вывода
- Custom Human Interface Device (HID) - тоже что и выше но с кастомизацией под свою версию драйвера (создание своих дескрипторов)
- Mass Storage - что-то типа кардридера к примеру
это STM32F103C8T6
Как заливать в неё код?
знаю можно через usb uart, но какой?
знаю, что можно прошить загрузчик, чтобы потом по распаянному usb можно было, если есть такой, кинь соус на него, в гугле не нашел.
Я ньюфаг, перехожу с arduino на st
Нихуя не понимаю, мне надо программатор к этой плате, которую я заказал?
Дискавери я выкинул нахуй давно.
Лучше купи программатор, с ним ты сможешь дебажить код, поверь это очень удобно и пригодится чтоб научиться понимать как и что работает (ты можешь ставить точки остановки, на которых программа будет останавливаться внутри контроллера в реальном времени и ты сможешь посмотреть значения переменных, регистров и т.д.)
Для прошивки через UART загрузчик используется UART_1, тут подробней:
http://easystm32.ru/useful-things/42-bootloader-stm32
>>262170
Да. Либо через UART, как описано выше, но тогда ты не сможешь дебажить код.
https://www.youtube.com/watch?v=DCjhJCk_bIE
Спасиб.
Насколько я знаю, китайские JTAG программаторы поддерживаются студией вплоть до 4.19, для более новых нужны официальные, рекоммендую официальный JTAGICE3, сам таким пользуюсь, в нем есть все необходимые интерфейсы и прошивка постоянно обновляется под новые версии студии.
Хз, я покупал 4 года назад.
>надо делать прерывания как можно короче
Ну и хули туту непонтяного? Там должно быть максиму изменение занчения переменной с парой проверок (счетчик времени, установка флага, проверка состояния порта), никаких вычислений и передачи данных. Тоесть в прерывании ты можешь выставить флаг, что надо передавать что-то или производить вычсисления, а потом в главном цикле уже проверить флаг и выполнить передачу/вычисления.
Я вчера ради интереса поставил 4.19 - против 7 версии это жутко унылое говно. Даже не знаю что и делать - покупать ли новый программатор и под 4.19 попробовать юзать старый.
Ввод и редактирование программы в Студии 4.19 остался на уровне Турбопаскаля 7.
*или
прерывание_нейм (void)
{
счетчик++;
флаг = 1;
флаг2 = 1;
}
И
прерывание_нейм (void)
{
функция_нейм(счетчик);
функция_нейм(флаг);
флаг = 1;
счетчик++;
счетчик2++;
}
Во втором примере - длинное прерывание. В первом короткое. Количество инкрементируемых счетчиков можно удерживать до 10, важно складывать, а не умножать, делить, вычитать. Флагов прерывание может содержать до 30. Это всё без потерь времени существенных. Также сильно зависит от тактовой частоты микропроцессора.
2^3 ~ 10 и 2^5 ~ 30. Так пойдет?
Все весьма условно и зависит от частоты камня. Чем меньше, тем лучше. Опытным путем были установлены примерно такие цифры.
Всё как всегда, эмпирически. Попробуй сам. Или просто иди нахуй, зачем я вообще тебе что-то пишу.
Скажите, пожалуйста, у меня прерывание происходит с частотой 2 Гц - сколько тактов мне можно под обработчик отвести?
Установи флаг состояния и выполняй обработчик вне прерывания - как показывает опыт, это лучший вариант. 2Гц - 500 мс, при частоте 1 МГц или 8МГц? Или 16 МГц?
digitalHigh(pin); digitalLow(pin);. Полезная штука, позволяет смотреть время выполнения отдельных кусков программы, не особо ее задерживая.
2 Гц это 500 мс вне зависимости от частоты процессора, это внешнее прерывание, идущее DS1307
Тогда можешь выполнять всё, что душе угодно, но так, чтобы оно укладывалось в 480 мс. Чтобы было время на небольшой простой.
Я делал часики с термопарой и симистором, для контроля тёплого пола. Там примерно тоже самое, только необходимо ещё опрашивать кнопки или энкодер. Вот это "медленные" прерывания.
Если у тебя будет задача принять данные быстро по любой шине (1-wire, i2c, spi), а потом обработать их быстро (wav-плеер, сборщик температур и данных о влажности, например), тогда только делать короткие прерывания.
Обьясните на кошках как мне по очереди включать эффекты
#include <WS2812FX.h>
#define LED_COUNT 30
#define LED_PIN 12
WS2812FX ws2812fx = WS2812FX(LED_COUNT, LED_PIN, NEO_GRB + NEO_KHZ800);
void setup() {
ws2812fx.init();
ws2812fx.setBrightness(100);
ws2812fx.setSpeed(200);
ws2812fx.setMode(FX_MODE_RAINBOW_CYCLE);
ws2812fx.start();
}
void loop() {
ws2812fx.service();
}
это включает FX_MODE_RAINBOW_CYCLE как включить например FX_MODE_DUAL_SCAN спустя минуту
сильно не ругайтесь ну не понимаю я
у меня опрос кнопок начинается только после прерывания int0, после нажатия на кнопку "Режим" - начало изменения настроек и выбора режимов
Время выполнения задается вот так
extern volatile unsigned long timer0_millis;;
void loop() {
timer0_millis=0;
while((timer0_millis*1000)<secs)
{ws2812fx.setMode(...);}
}
В библиотеке не копался, думаю, этого должно хватить.
Не, неправильно. В теле функции будет
timer0_millis=0;
ws2812fx.setMode(...);
while((timer0_millis*1000)<secs)
ws2812fx.service();
С током все понятно - есть много недорогих датчиков Холла, которые можно впаять в разрыв провода после автомата.
А вот с напряжением не так ясно. Если просто вкорячить резистор и подключить к пердуине, то не будет гальванической развязки. А трансформаторы большие и дорого обойдутся. Может для таких незначительных мощностей можно намотать маленький самодельный развязывающий транс?
>>262712
Вроде видел такую хуйню на али за бигмак.
Готовую такую хуйню я тоже видел, и даже покупал, но она выдавала погоду на Марсе.
Тогда самое простое - вырвать транс из какой то хуйни.
https://onedrive.live.com/?authkey=!ACXDAvI8VK7J4_I&v=TextFileEditor&id=9959A9B95A8DE0BD!3973&cid=9959A9B95A8DE0BD&parId=9959A9B95A8DE0BD!3971
>Может для таких незначительных мощностей можно намотать маленький самодельный развязывающий транс?
Приличные одноваттные трансы стоят от 2$. Но есть вариант дешевле. Поставить резистивный делитель где-то на 5мег этот желательно взять или выводным высоковольтным или собрать из последовательно соединенных смд - они должны держать не меньше 1кв и 1к с фазы/нейтрали и диф.усилитель на LMV321 с 100к в цепи ос. Это даст 3.4в при 340в на входе.
Облегчись себе в штанишки, неуч.
Лол, таймер - глобальная переменная. Она вне функции объявляется.
Ты хоть про области действия переменных почитай.
В общем хочу разобраться с gsm m590.
Использую nano в качестве усб-сериал (ch340).
в пердуино залито
pinMode(0, INPUT);
pinMode(1, INPUT);
Инструкция гласит, пиши в монитор АТ, меняя скорость, пока не будет ОК.
Все это быстро произошло, смутило, что отвечает ОК на любой скорости. Из команд работает только несколько.
собственно АТ, эховклвыкл, и ATI ответ LSI Softmodem Version 2.2.89.2.
Я как только не колдовал, но на все остальное отвечает ЕГГОГ. В процессе колдовства, заметил удивительное, отвечает мне НЕКТО и без модуля ЖСМ, лол.
Полагаю, этот кто то и мешает мне с можулем общаться.Кто это? пердуина? СН340? Че сделать то?
они уже установлены, просто попробуй их указать
Бля! я совсе поехал. Мне кто то из com3 отвечает на команду AT, даже когда в usb ничего не вставлено, а реальных com портов на ноуте нет. Пиздец.
Это виртуальная пара, настроенная повторителем, чудик. Зайди уже в диспетчер устройств и проверь.
Выясняешь по документации на WS2801 тактовую частоту Clock и тактируешь. Бит - изменение состояния, следующий бит - изменение состояния.
Это ты , конечно, хорошо сказал, но спасибо за совет ( без иронии спасибо). Ws2801 через библиотеку от adafruit подключаются обычно, буду пример от 2812 на 2801 пробовать пердолить с новой библиотекой
Там максимум частоты 25 МГц, на любой до неё можешь тактировать. Что там сложного?
if (Byte & (0b00000001 << Bit_Count) > 0)
PORTX |= 0b00000001;
else PORTX &= 0b11111110;
if (Flag) PORTX &= 0b11111101;
else PORTX |= 0b00000010;
Flag = ~Flag;
Bit_Count++;
if (Bit_Count > 7) Bit_Count = 0;
Ардуину бери. У неё огромное комьюнити, нагуглишь любую проблему.
А возникнут вопросы по stm32, тебя в даташит пошлют. Или нахуй.
Что впрочем, в этой ситуации, одно и то же.
Быть глупым не стыдно. Стыдно не желать учиться и находить свои ошибки.
И чтобы как минимум 12 бит, а лучше 14-16.
И в идеале с i2c выходом, чтоб можно было целую кучу понавешать.
Слона-то я и не приметил, спасибо.
У меня только сам танк есть. Тебе зачем?
Пытаюсь прошить плату своего 3д принтера и выскакивает вот такая шняга, что делать?
[CODE]
avrdude: Device signature = 0x000000
avrdude: Yikes! Invalid device signature.
Double check connections and try again, or use -F to override
this check.
[/CODE]
Пока есть только платформа. Прокрастинирую уже с апреля.
А до этого шил этот контроллер? Если заказывал китайские, то могли туда бутстрапон не зашить.
Например, чтобы иметь скорость передачи около 1 гбит, а не нестабильные 50мбит, которые могут быть достигнуты только в вакууме в альтернативной реальности с идеальными физическими законами и непосредственной близости пердуины и клиента.
Дело даже не столько в скорости, сколько в стабильности сигнала.
ГИГАБИТ НА АРДУИНЕ?!
16 МГц хватит, если ты только не решил устроить MESH сеть на 2 Мбита. Алгоритмы контроля температуры, влажности достаточно медлительны, так как связаны с инерционными системами.
2 дня,как начал играться с ардуиной.
Помогите воплотить в жизнь следующую задумку.
1.Написан .bat файлик, который считывает температуру процессора и отправляет на ком порт следующий текст:
"CurrentTemperature
3692"
(температура в кельвинах*10)
2.Ардуинка должна эту информацию принять и сравнить ее с заданным значением (пусть 3700),
если больше, то должен загореться светодиод, если меньше - погаснуть.
3.Проблема. Светодиод не горит. Помогите разобраться с типом данных, которые читает ардуина. мне кажется проблема тут.
зы позже скину коды
.доид
Код должен примерно раз в секунду инвертировать ножку 2 порта B. Но он ничего не делает. Где я ошибся?
ISR(TIMER0_OVF_vect) {
k++;
}
int main(void)
{
TIMSK=0b00000001;
sei();
DDRB = 0b00000100;
TCCR0=0b00000101;
while (1)
{
if (k==61) {
if (1 & (PORTB >> 2)) {
PORTB=0;
} else { PORTB = 0b00000100; }
k=0;
}
}
}
Если засунуть все, что находится while в прерывание, то все работает. Что за ёбаная магия?
Отключил, не помогло.
Я добавил PORTD=k;
Получил пикрелейтед. То есть k доходит до 60 (00111100) и почему-то останавливается. Если сделать не 61, а 31 допустим, то k доходит до 30 и так же останавливается по непонятным причинам.
{
TIMSK=0b00000001;
sei();
DDRB = 0b00000100;
TCCR0=0b00000101;
while (1)
{
if (k==61) {
if (1 & (PORTB >> 2)) {
PORTB=0;
} else { PORTB = 0b00000100; }
k=0;
}
}
}
И
{
TIMSK=0b00000001;
sei();
DDRB = 0b00000100;
TCCR0=0b00000101;
while (1)
{
if (k > 60)
{
if ((PORTB & 0b00000100) > 0) {PORTB=0;}
else { PORTB = 0b00000100; }
k=0;
}
}
}
{
TIMSK=0b00000001;
sei();
DDRB = 0b00000100;
TCCR0=0b00000101;
while (1)
{
if (k==61) {
if (1 & (PORTB >> 2)) {
PORTB=0;
} else { PORTB = 0b00000100; }
k=0;
}
}
}
И
{
TIMSK=0b00000001;
sei();
DDRB = 0b00000100;
TCCR0=0b00000101;
while (1)
{
if (k > 60)
{
if ((PORTB & 0b00000100) > 0) {PORTB=0;}
else { PORTB = 0b00000100; }
k=0;
}
}
}
Все, разобрался. С нужно было действительно все переменные обозначить как volatile. Я потом добавил второй таймер, который должен был сбрасывать флаг в прерывании, но он по какой-то причине не сбрасывал и МК зацикливался.
Вот код
ISR(TIMER1_COMPA_vect) {
TCCR1B=0b00001000;
reset=false;
}
reset=true;
while (reset);
И на while он зацикливался, хотя по идее должен прерыванием сброситься.
Подойдет?
Как давно ты начал писать код? Мне для себя, чисто поржать. Это же классическая ошибка! Ты сначала ставишь reset = True; а потом пытаешься проверить его на False. Это твоя невнимательность, я тоже таким же страдаю, если тебя это утешит.
Твоя задача с миганием решается одним таймером.
mSec++;
if (mSec > 30) PORTB |= 0b00000100;
if (mSec > LED_Speed) {PORTB &= ~0b00000100; mSec = 0;}
>а потом пытаешься проверить его на False.
Но я его пытаюсь проверить на true.
while(reset); все равно что while (reset==true);
> while (reset);
Мда
reset хотя бы объявил как volatile? Он у тебя точно только глобально объявлен?
> Ты сначала ставишь reset = True; а потом пытаешься проверить его на False
Он его типа из прерывания потом меняет на false
>Он у тебя точно только глобально объявлен?
Да
>reset хотя бы объявил как volatile?
Когда объявил, тогда все заработало.
Но мне несколько непонятно это. Судя по всему при проверке циклом чтение переменной совпадает с записью false в прерывании и они как-то конфликтуют.
А, блять кажется я вкурил.
Программа тупо пропускает проверку в while, потому что переменная никак в ней не меняется и компилятор оптимизирует, тупо убирая эту проверку.
> Программа тупо пропускает проверку в while, потому что переменная никак в ней не меняется и компилятор оптимизирует, тупо убирая эту проверку.
Бинго. Можешь еще для эксперимента и закрепления знаний убрать volatile и поиграть с опциями оптимизации компилятора. И посмотри, что он будет выдавать в ассемблере в различных случаях
Речь об атмега8
Один из многих и самый простой. Подключил гироскоп +, землю, клок, дату. Пос схемам из гугла. Вообще, на моей uno китайцы вывели дополнительно i2c в сторонку.
В чем проблема: ардуина не видит девайс. Попробовал просто запустить код без гироскопа. http://prntscr.com/drg9jg
Не идет даже перебора адресов. Похоже, что код умирает тут: Wire.beginTransmission(address);
С 8го адреса если начинать, результат такой же. В итоге подозреваю, что либо с платой что-то не так, либо с библиотекой. Что делать? Не знаю как проверить что сдохло.
Суть такова делаю девайс, одна из его функций - отправка смс позвонившему рандому с температурой.
модуль м590.
Сделать софтсериал у меня вообще не получилось, я даже не понимаю почему, хотя однократно за 2 часа ебли со скоростями и прочим хеллоудаун таки отправилось Забил хуй, достал мегу, переписал какой то пример под железный сериал - заработало. Но это хуй с ним. Так как я полный нуб в программировании -
ТЕПЕРЬ СУТЬ:
Вот я поймал String at
RING
+CLIP: "7987100500",145,,,"",0
КАК МНЕ ВЫСОСАТЬ ИЗ НЕЕ ТОЛЬКО НОМЕР??
в String sendTo
>Самое время зарабатывать 300kk/sec и наставлять молодых оленят на путь истинный ITT
А что - на этом можно профит поиметь? Кроме того, что программированию в процессе анон обучиться.
>>265024
Долго пердолился и родил это:
if (Serial1.available()) {
while (Serial1.available()) {
ch = Serial1.read();
if (ch == '7')
{
delay(10);
tel += char(ch);
for (int i = 1; i <= 10; i++)
{
ch = Serial1.read();
tel += char(ch);
delay(10);
}
Serial1.println("ATH0");
Serial.print ("Zvonit: ");
Serial.println(tel);
tel = "";
}
}
}
}
Какие подводные камни?
инбифо:любая цифра 7 свалившаяся из сериала делает меня обезьяной
-а ты добавь сравнение еще из 9
>>265024
Долго пердолился и родил это:
if (Serial1.available()) {
while (Serial1.available()) {
ch = Serial1.read();
if (ch == '7')
{
delay(10);
tel += char(ch);
for (int i = 1; i <= 10; i++)
{
ch = Serial1.read();
tel += char(ch);
delay(10);
}
Serial1.println("ATH0");
Serial.print ("Zvonit: ");
Serial.println(tel);
tel = "";
}
}
}
}
Какие подводные камни?
инбифо:любая цифра 7 свалившаяся из сериала делает меня обезьяной
-а ты добавь сравнение еще из 9
Что если добавить проверку на коды всех операторов и длину строки после 7?
Ты можешь на С туда код вкатать, IDE сожрет спокойно. В нем работа с форматированием строки, наверно проще.
Была такая мысль. Но так как я совсем нуфаг, я попросил знакомую это сделать.
Она сделала так:
http://ideone.com/cXaq21
ide это сожрал, но он похоже не воспринимает charж как строчку и начинает плеваться. В общем не может преобразовывать String в charж и обратно.
>>265164
Код оператора это вот это?
>+CLIP: "79871005000",145,,,"",0
Алсо, может просто проверять все 10 символов на факт цифры? Уж вряд ли жсм модуль пошлет 10 цифр начиная с семерки кроме как во время звонка если самому ничего типа imei у него не просить.
>проверять все 10 символов на факт цифры
if(ch >= '0' && ch <= '9')
Вот так. Я думаю еботка же просто не символ, а его номер в таблице сравнивает, а номера там тоже по порядку идут, правильно?
Там ничего серьёзней, чем как мигать диодом и потом сразу "get inspired". Так-то в сети куча мануалов суй сюда, это сюда, код вот. Но это любой даунич сделает. Я говорю о гайде, где бы объяснялось, что этот пин то-то, этот то-то, подключать так-то и поэтому будет работать, вот бредборд работает так-то и тому подобное. Неужели нет такого подробного?
Ну гугли, хули ты. Даташит я тебе показал, пины настраиваются. Хочешь глубже, выкинь ардуино иде, пиши на С.
Ардуина специально для даунич, быстро собрать, быстро запрогать. Прототипирование же.
Да мне больше гайдов бы по схемам, бредбордам их подключению/взаимодействию. Прогнать-то я умею, похуй на это.
Даже в этом треде нет ни одной ссылки на годный мануал для новайсов
Какой тебе мануал? На сс есть схемы включения, да и гуглится все. Не понимаю что тебе нужно.
>Там ничего серьёзней
>это любой даунич сделает
Ну, ты напросился.
Полагаю у тебя Arduino Uno, там ATmega328P
Вот, держи
http://www.atmel.com/Images/Atmel-42735-8-bit-AVR-Microcontroller-ATmega328-328P_Datasheet.pdf
Да я ему уже показывал картинку, вполне хватило бы. Он просто не знает чего хочет/как начать учить.
Алсо, есть простой мануал где-нибудь по поиску косяков с помощью логического пробника, такой чтобы для совсем новичков. Не найду никак.
Найди себе какую-нибудь книжку по схемотехнике и читай. Чтобы знать, где какие выводы находятся у конкретного МК, как раз и нужны даташиты.
Сами МК - это по сути устройства для преобразования входных сигналов в выходные. Если ты в физике (электронике) не силен, то тебе МК ничего кроме мигания светодиодом не даст.
В любом случае, можешь оставить любой любой контакт, я тебе поясню за любой вопрос.
Вот у меня есть PIR датчик, он вроде дает +5 при движении и держит несколько секунд. Мне нужно перезапускать таймер, когда кто двигался. Как он будет себя вести от того что импульс от датчика долгий? И в какой момент снова сработает?
инбифо: гугли@проверяй за щеку себе
Даташит датчика надо смотреть, смотреть как он и что посылает, так тебе никто не скажет
>дает +5 при движении и держит несколько секунд
Я не за датчик, а за преоывания спрашиваю же.
Заходишь в ньюфаготред, там в шапке есть вся нужная литература. А лезть в мк не зная нихуя — прямая дорога к уринированию твоего лица.
Ставлю прерывание на пин2. Датчик держит Low в покое, при срабатывании дает high на 2 секунды. Пока он срабатывает будет high. Мне надо сбрасывать таймер, с момента как все успокоилось. Как настроить прерывание?
>Мне надо сбрасывать таймер, с момента как все успокоилось
А зачем тебе таймер вообще? Я так понял у тебя контроллер просыпается от внешнего события, делает что нужно, а потом опять засыпает, верно? Если так, то ловишь прерывание, делаешь что нужно, ждешь >>2 секунд, дальше засыпаешь.
>int
Лаел, заводить под один бит двухбайтную переменную — вся суть пирдуинавскага праграмеравания. Хоть и на память и оперативку всем сейчас похуй.
Ага, еще и скобочки не везде стоят. Хуле доебался, это просто псевдокод, чтоб понять принцип.
Хм, тогда настраиваешь таймер на прерывания каждую секунду, например, в прерывании инкрементируешь какую-то еба переменную, величину которой нужно заранее посчитать.
Ты че сука?
Вот представь - датчик это дверной звонок, в который звонят иногда, подавая высокий уровень. Вот мне надо измерить время между сейчас и последним нажатием звонка. НА ЧТО ЧИ-ТАТЬ? На кнопку или на атмегу?
>>265440
нахуй мне надо прерываться каждую секунду, мне надо в прерывании millis() как то посчитать.
attachInterrupt(0, anus, FALLING);
void anus()
{
А вот тут хуй пойми.
Сперва хочется записать
time = millis();
}
Затем уже, когда надо узнать время последнего нажатия:
result = millis() - time;
НО, прочитал такую хуйню и не понимать:
>Внутри функции-обработчика прерывания функция delay() не будет работать; значения, возвращаемые функцией millis(), не будут увеличиваться. Также будут потеряны данные, полученные по последовательному интерфейсу во время выполнения обработчика прерывания.
И хули? Выводить из прерывания какой то флаг, а его в лупе обсчитывать и обнулять?
На кнопку прочитал (за щеку).
Когда я на атмегу прочитаю и все пойму я вас обоссу сюда писать не буду.
Слушай, ты знаешь, как отсчитывается определенное время в микроконтроллере?
Ну я как то так делаю:
time = currentMillis - previousMillis;
Ну еще переполнение бывает, но я как то ваще не один девайс включенным столько не держал.
А ЧЯДНТ?
Или ты про саму хардварную физику?
Ну там частота, вся хуйня, прибавляет на такте, хз в общем.
Я этот пердуиноязык не понимаю, можешь мне не писать код. Просто нужно понимать что происходит в контроллере на самом деле, для чего нужны таймеры/счетчики и как они работают.
Сука, лалка, печёт на проигрыше мне сейчас.
Пердуноязык он не понимает. Ну на тебе бинарник:
:1000000092C10000C0C10000BEC10000BCC1000020
:10001000BAC10000B8C10000B6C10000B4C1000000
:10002000B2C10000B0C10000AEC10000ACC1000010
:10003000AAC10000A8C10000A6C10000A4C1000020
:10004000A2C10000A0C100009EC100009CC1000030
:100050009AC1000098C1000096C100002EC60000A1
:1000600092C1000001C60000D6C500008CC100008E
:100070008AC1000088C1000086C1000084C1000060
:1000800082C1000080C100007EC100007CC1000070
:1000900099C500006EC5000076C1000074C1000063
:1000A00072C1000070C100006EC100006CC1000090
:1000B0006AC1000068C1000066C1000064C10000A0
:1000C00062C1000060C100005EC100005CC10000B0
:1000D0005AC1000058C1000056C1000054C10000C0
:1000E00052C100004403470336033A0340037E0332
:1000F0004B034F03550359035D03630367036B030E
:100100007E0371037503790300002100240027009A
:100110002A002D0030003300010100000401070116
:100120000A01000020002300260029002C002F00D7
:100130003200000100000301060109010000220055
:10014000250028002B002E003100340002010000A1
:10015000050108010B010505050507050808080844
:10016000020202020A0A080804040404010101014F
:10017000010101010303030303030303040707074A
:100180000C0C0C0C0C0C0C0C0202020206060606EF
:10019000060606060B0B0B0B0B0B0B0B01021020BC
:1001A00020080810204010204080020102010804AD
:1001B0000201010204081020408080402010080441
:1001C000020180040201804020100804020108049A
:1001D00002010102040810204080010204081020DE
:1001E000408000000A0B02090C0D0E0807030401F1
:1001F00000000000000000000000000000000000FF
:1002000000000000000000000000000000001211CB
:1002100010000000000000000000000000000000CE
:10022000000000000000000000407A10F35A00A017
:10023000724E18090010A5D4E80000E876481700AF
:1002400000E40B54020000CA9A3B000000E1F505EF
:10025000000080969800000040420F000000A08639
:1002600001000000102700000000E803000000006B
:100270006400000000000A0000000000010000000F
:1002800000002C76D888DC674F0823DFC1DFAE5929
:10029000E1B1B796E5E3E453C63AE651997696E8BC
:1002A000E6C28426EB898C9B62ED407C6FFCEFBC40
:1002B0009C9F40F2BAA56FA5F490055A2AF75C936B
:1002C0006B6CF9676DC11BFCE0E40D47FEF520E6A1
:1002D000B500D0ED902E0300943577050080841E84
:1002E000080000204E0A000000C80C333333330FDF
:1002F000986E12831141EF8D2114893BE65516CF7C
:10030000FEE6DB18D1844B381BF77C1D901DA4BB87
:10031000E424203284725E228100C9F124ECA1E53C
:100320003D27A706E00A11241FBECFEFD1E2DEBFB2
:10033000CDBF00E00CBF13E0A0E0B2E0ECE3F2E2DE
:1003400000E00BBF02C007900D92A438B107D9F7A7
:1003500024E0A4E8B3E001C01D92AA3EB207E1F791
:1003600011E0C2E9D1E000E006C021970109802F29
:10037000FE010E94020BC139D10780E00807A9F7EE
:1003800051D50C940D113CCEFC01A089B18982E0BD
:100390008C93A485B5851C92A685B7858FEC8C932C
:1003A000108EA489B58986E08C93A289B3898C913B
:1003B00080618C93A289B3898C9188608C93A28987
:1003C000B3898C9180688C930288F389E02D8081B9
:1003D0008F7D80830895CF92DF92EF92FF920F93EB
:1003E0001F93CF93DF936C017A018B01C0E0D0E0C3
:1003F000CE15DF0589F0D8016D918D01D601ED9103
:10040000FC910190F081E02DC6011995892B11F422
:100410007E0102C02196ECCFC701DF91CF911F91E1
:100420000F91FF90EF90DF90CF900895FC01A0898D
:10043000B1898C91A689B78982FD0FC09C91818D6D
:100440008F5F8F73228D821749F0218DDF01A20FFC
:10045000B11D5D969C93818F08958C910895FC0148
:10046000918D828D981761F0828DDF01A80FB11DEB
:100470005D968C91928D9F5F9F73928F90E008950F
:100480008FEF9FEF0895FC01918D828D981731F0C9
:10049000828DE80FF11D858D90E008958FEF9FEF1D
:1004A0000895FC01918D228D892F90E0805C9F4FF3
:1004B000821B91098F73992708958EE893E0F1DFED
:1004C00021E0892B09F420E0822F08958BE294E04B
:1004D000E8DF21E0892B09F420E0822F0895FC0158
:1004E000848DDF01A80FB11DA35ABF4F2C91848DBD
:1004F00090E001968F739927848FA689B7892C93F2
:10050000A089B1898C9180648C93938D848D98138C
:1005100006C00288F389E02D80818F7D8083089555
:10052000EF92FF920F931F93CF93DF93EC0181E043
:10053000888F9B8D8C8D981305C0E889F9898081FF
:1005400085FD23C0F62E0B8D10E00F5F1F4F0F733C
:100550001127E02E8C8DE8120BC00FB607FCFACFE6
:10056000E889F989808185FFF5CFCE01B8DFF2CF28
:100570008B8DFE01E80FF11DE35AFF4FF0820B8FC8
:10058000EA89FB898081806207C0EE89FF896083E8
:10059000E889F98980818064808381E090E0DF913F
:1005A000CF911F910F91FF90EF900895CF93DF931C
:1005B000EC01888D8823C1F0EA89FB89808185FD63
:1005C00005C0A889B9898C9186FD0EC00FB607FCBD
:1005D000F5CF808185FFF2CFA889B9898C9185FFFD
:1005E000EDCFCE017CDFE8CFDF91CF91089580E0A1
:1005F00090E0892B19F06ADF811120C080E090E043
:10060000892B19F05ADF81111CC080E090E0892B02
:1006100041F080E090E0892B21F00E9400008111E0
:1006200013C080E090E0892BA1F080E090E0892B5E
:1006300081F00E94000081110AC008950E9400000C
:10064000DDCF0E940000E1CF0E940000EACF0C94B1
:100650000000089590E0FC013197E231F10508F0C7
:100660004DC08827EE58FF4F8F4FCCC78091800038
:100670008F7703C0809180008F7D809380000895E4
:1006800080918000877FF9CF84B58F7702C084B5D1
:100690008F7D84BD08958091B0008F7703C08091D5
:1006A000B0008F7D8093B0000895809190008F7787
:1006B00007C0809190008F7D03C080919000877F5C
:1006C0008093900008958091A0008F7707C080915B
:1006D000A0008F7D03C08091A000877F8093A00041
:1006E0000895809120018F7707C0809120018F7D30
:1006F00003C080912001877F8093200108951F937C
:10070000CF93DF93EFEEF1E09491E9EAF1E0D49139
:10071000E3E6F1E0C491CC23D1F0182F992311F036
:10072000892F98DFEC2FF0E0EE0FFF1FE45CFE4F07
:10073000A591B4918FB7F894111105C09C91ED2F3C
:10074000E095E92302C0EC91ED2BEC938FBFDF9194
:10075000CF911F9108953FB7F894809189039091AC
:100760008A03A0918B03B0918C0326B5A89B05C08A
:100770002F3F19F00196A11DB11D3FBFBA2FA92F20
:10078000982F8827820F911DA11DB11DBC01CD019D
:1007900042E0660F771F881F991F4A95D1F7089589
:1007A0008F929F92AF92BF92CF92DF92EF92FF9281
:1007B0006B017C01D0DF4B015C01C114D104E10469
:1007C000F104E9F0C8DFDC01CB0188199909AA0915
:1007D000BB09883E9340A105B10578F321E0C21A18
:1007E000D108E108F10888EE880E83E0981EA11C6C
:1007F000B11CC114D104E104F10421F7DECFFF9054
:10080000EF90DF90CF90BF90AF909F908F90089522
:10081000CF93DF932091E4043091E504232B79F00A
:10082000FC01C091E004D091E10460817181CE01AE
:100830000E94430D009719F08C1B9D0B02C08FEF97
:100840009FEFDF91CF9108950E942F0D61157105E3
:1008500079F0FB0101900020E9F73197AF01461BC9
:10086000570BDC01ED91FC910280F381E02D19948E
:1008700080E090E008950F931F93CF93DF93EC01F6
:10088000E5DF8C016AE172E0CE01E0DF800F911FAD
:10089000DF91CF911F910F9108950F931F93CF93E5
:1008A000DF93EC01E881F981DB0114964D915C91B5
:1008B00015976D917C910280F381E02D19958C0143
:1008C0006AE172E0CE01C2DF800F911FDF91CF910C
:1008D0001F910F9108950F931F93CF93DF93EC0116
:1008E00088819981009729F02A813B812617370753
:1008F00080F48B016F5F7F4FCED7009761F09983B3
:1009000088831B830A832C813D81232B11F4FC01F6
:10091000108281E001C080E0DF91CF911F910F91A3
:100920000895EF92FF920F931F93CF93DF93FC01F3
:10093000248135816115710511F480E018C04115DD
:100940005105A1F07B01EC018A01020F131FB801D0
:10095000C2DF882391F3288139818C819D81B70181
:10096000820F931F0E943C0D1D830C8381E0DF9159
:10097000CF911F910F91FF90EF900895CF93DF9348
:10098000EC0188819981009709F0EDD619821882CF
:100990001D821C821B821A82DF91CF910895CF9312
:1009A000DF93EC016115710559F0FB010190002006
:1009B000E9F73197AF01461B570BB3DF811102C036
:1009C000CE01DCDFCE01DF91CF910895CF93DF938D
:1009D000EC01FB014481558160817181A2DF8111AD
:1009E00002C0CE01CBDFCE01DF91CF910895EF920F
:1009F000FF920F931F93CF93DF93EC017B018A014A
:100A0000BA0169DF811103C0CE01B8DF07C01D83C1
:100A10000C83B701888199810E943C0DCE01DF9142
:100A2000CF911F910F91FF90EF900895CF93DF9397
:100A3000EC016115710551F0FB0101900020E9F70F
:100A40003197AF01461B570BD2DF01C097DFCE01B4
:100A5000DF91CF910895CF93DF93EC01FB018617CF
:100A6000970751F0608171816115710521F0448112
:100A70005581BDDF01C082DFCE01DF91CF910895A6
:100A8000FC01118210821382128215821482E3CF3C
:100A9000FC01118210821382128215821482611568
:100AA000710549F0FB0101900020E9F73197AF0192
:100AB000461B570B9CCF0895FC018081918153C642
:100AC000EF92FF920F931F93CF93DF93CDB7DEB7D3
:100AD000A1970FB6F894DEBF0FBECDBF7C01CB014E
:100AE000BA01F701118210821382128215821482D8
:100AF00042E0420F8E010F5F1F4FDFD7BC01C701DD
:100B000095DFA1960FB6F894DEBF0FBECDBFDF9183
:100B1000CF911F910F91FF90EF9008950F931F9326
:100B2000CF93DF93CDB7DEB762970FB6F894DEBFF1
:100B30000FBECDBF8C01CB01F80111821082138250
:100B400012821582148250E0BE016F5F7F4F0E94B7
:100B5000D10DBE016F5F7F4FC80168DF62960FB68F
:100B6000F894DEBF0FBECDBFDF91CF911F910F91E3
:100B700008951F920F920FB60F9211240BB60F9289
:100B80002F933F934F935F936F937F938F939F9395
:100B9000AF93BF93EF93FF938EE893E0A0DCFF91B8
:100BA000EF91BF91AF919F918F917F916F915F91E5
:100BB0004F913F912F910F900BBE0F900FBE0F9052
:100BC0001F9018951F920F920FB60F9211240BB61B
:100BD0000F922F933F934F935F936F937F938F93D6
:100BE0009F93AF93BF93EF93FF938EE893E01EDC48
:100BF000FF91EF91BF91AF919F918F917F916F91F5
:100C00005F914F913F912F910F900BBE0F900FBEB0
:100C10000F901F9018951F920F920FB60F921124EC
:100C20000BB60F922F933F934F935F936F937F93E6
:100C30008F939F93AF93BF93EF93FF938BE294E0D7
:100C40004EDCFF91EF91BF91AF919F918F917F917A
:100C50006F915F914F913F912F910F900BBE0F902D
:100C60000FBE0F901F9018951F920F920FB60F9204
:100C700011240BB60F922F933F934F935F936F9373
:100C80007F938F939F93AF93BF93EF93FF938BE2E9
:100C900094E0CCDBFF91EF91BF91AF919F918F9149
:100CA0007F916F915F914F913F912F910F900BBE6C
:100CB0000F900FBE0F901F9018951F920F920FB6B6
:100CC0000F9211242F933F938F939F93AF93BF93D2
:100CD0008091850390918603A0918703B09188034A
:100CE0003091840323E0230F2D3720F40196A11DBA
:100CF000B11D05C026E8230F0296A11DB11D20934A
:100D000084038093850390938603A0938703B09315
:100D100088038091890390918A03A0918B03B091FD
:100D20008C030196A11DB11D8093890390938A03C2
:100D3000A0938B03B0938C03BF91AF919F918F9140
:100D40003F912F910F900FBE0F901F901895EEE8D6
:100D5000F3E01382128248EE53E060E070E04483D7
:100D60005583668377838EE092E0918380832DECB8
:100D700030E0358724872CEC30E03787268728EC55
:100D800030E0318B208B29EC30E0338B228B2AEC46
:100D900030E0358B248B2EEC30E0378B268B118E98
:100DA000128E138E148EEBE2F4E0138212824483CF
:100DB0005583668377839183808385EC90E0958764
:100DC000848784EC90E09787868780EC90E0918B15
:100DD000808B81EC90E0938B828B82EC90E0958B02
:100DE000848B86EC90E0978B868B118E128E138EFF
:100DF000148E6CE172E080EE94E04ADE6CE172E009
:100E00008AED94E045DE6DE172E084ED94E040DE31
:100E100065E272E08EEC94E03BDE6EE372E088EC1B
:100E200094E036CECF93DF93CDB7DEB762970FB69F
:100E3000F894DEBF0FBECDBF789484B5826084BDC8
:100E400084B5816084BD85B5826085BD85B58160CE
:100E500085BD80916E00816080936E00109281004C
:100E60008091810082608093810080918100816007
:100E700080938100809180008160809380008091C8
:100E8000B10084608093B1008091B0008160809354
:100E9000B0008091910082608093910080919100D8
:100EA0008160809391008091900081608093900098
:100EB0008091A10082608093A1008091A100816057
:100EC0008093A1008091A00081608093A000809118
:100ED00021018260809321018091210181608093B2
:100EE00021018091200181608093200180917A000E
:100EF000846080937A0080917A00826080937A0087
:100F000080917A00816080937A0080917A00806875
:100F100080937A001092C100E9EAF1E02491E3E6BF
:100F2000F1E08491882399F090E0880F991FFC01EB
:100F3000E85FFE4FA591B491FC01E45CFE4F859102
:100F400094918FB7F894EC91E22BEC938FBFEEE97C
:100F5000F1E02491E8E5F1E084918823C9F090E084
:100F6000880F991FFC01E85FFE4FA591B491FC0129
:100F7000E45CFE4F459154913FB7F8949C91822FC9
:100F8000809598239C93FA019081892380833FBFA9
:100F90008BE294E0F9D961E472E08BE294E06BDCDF
:100FA0008EE893E0F1D961E572E08EE893E063DCCE
:100FB00064E670E080E090E0F3DB6BE572E08EE8E1
:100FC00093E059DC64E670E080E090E0E9DB60E605
:100FD00072E08EE893E04FDC64E670E080E090E041
:100FE000DFDB6AE672E08EE893E045DC64E670E001
:100FF00080E090E0D5DB20EA422E26E8522E6624DF
:101000006394712CE4EEF1E08491EEE9F1E0149147
:10101000E8E5F1E00491002379F081111BDBE02F7A
:10102000F0E0EE0FFF1FEE5DFE4FA591B4918C91A5
:10103000182311F081E001C080E061DB8EE893E0CD
:1010400030DA892B09F4BAC284E6282E312C8EE8D6
:1010500093E027DA892B09F4B1C28EE893E0FFD937
:10106000182F80938D03873391F76AE070E080E05A
:1010700090E096DB19831A8241E050E0BE016F5F79
:101080007F4F80EE94E04DDC0AE010E08EE893E0C4
:10109000E6D980938D0389831A8241E050E0BE0136
:1010A0006F5F7F4F80EE94E03CDC6AE070E080E0B0
:1010B00090E076DB0150110949F768E772E08EE8AD
:1010C00093E0D9DB6DE772E08BE294E0BFDB60EE8A
:1010D00074E08BE294E0E1DB68EE73E080E090E0A6
:1010E0005FDB53D52CEB32E040E050E00E94B010C3
:1010F000DC01CB01885F984FAF4FBF4FB1016FD27A
:10110000072E000C880B990BF0D76B017C013DD5A5
:10111000A30192010E94B0104B015C0166E872E0ED
:10112000CE010196B5DCCE01019672DB8C01CE01B9
:101130000196C2DC17FD2DC04AE0B401CE010D9628
:10114000EDDC22E0B701A601CE010796B9DC62E929
:1011500072E0CE0101969CDCBE01695F7F4FCE013B
:10116000019634DC63EB72E01ADCBE01635F7F4F
>Просто нужно понимать
Это ардуино. А я нуфаг и школьник. Понимать надо тому, кто институты заканчивал и микроволновки РАЗРАБАТЫВАЕТ для эленберга. А мне надо время посчитать, скажи как сделать?
Сука, лалка, печёт на проигрыше мне сейчас.
Пердуноязык он не понимает. Ну на тебе бинарник:
:1000000092C10000C0C10000BEC10000BCC1000020
:10001000BAC10000B8C10000B6C10000B4C1000000
:10002000B2C10000B0C10000AEC10000ACC1000010
:10003000AAC10000A8C10000A6C10000A4C1000020
:10004000A2C10000A0C100009EC100009CC1000030
:100050009AC1000098C1000096C100002EC60000A1
:1000600092C1000001C60000D6C500008CC100008E
:100070008AC1000088C1000086C1000084C1000060
:1000800082C1000080C100007EC100007CC1000070
:1000900099C500006EC5000076C1000074C1000063
:1000A00072C1000070C100006EC100006CC1000090
:1000B0006AC1000068C1000066C1000064C10000A0
:1000C00062C1000060C100005EC100005CC10000B0
:1000D0005AC1000058C1000056C1000054C10000C0
:1000E00052C100004403470336033A0340037E0332
:1000F0004B034F03550359035D03630367036B030E
:100100007E0371037503790300002100240027009A
:100110002A002D0030003300010100000401070116
:100120000A01000020002300260029002C002F00D7
:100130003200000100000301060109010000220055
:10014000250028002B002E003100340002010000A1
:10015000050108010B010505050507050808080844
:10016000020202020A0A080804040404010101014F
:10017000010101010303030303030303040707074A
:100180000C0C0C0C0C0C0C0C0202020206060606EF
:10019000060606060B0B0B0B0B0B0B0B01021020BC
:1001A00020080810204010204080020102010804AD
:1001B0000201010204081020408080402010080441
:1001C000020180040201804020100804020108049A
:1001D00002010102040810204080010204081020DE
:1001E000408000000A0B02090C0D0E0807030401F1
:1001F00000000000000000000000000000000000FF
:1002000000000000000000000000000000001211CB
:1002100010000000000000000000000000000000CE
:10022000000000000000000000407A10F35A00A017
:10023000724E18090010A5D4E80000E876481700AF
:1002400000E40B54020000CA9A3B000000E1F505EF
:10025000000080969800000040420F000000A08639
:1002600001000000102700000000E803000000006B
:100270006400000000000A0000000000010000000F
:1002800000002C76D888DC674F0823DFC1DFAE5929
:10029000E1B1B796E5E3E453C63AE651997696E8BC
:1002A000E6C28426EB898C9B62ED407C6FFCEFBC40
:1002B0009C9F40F2BAA56FA5F490055A2AF75C936B
:1002C0006B6CF9676DC11BFCE0E40D47FEF520E6A1
:1002D000B500D0ED902E0300943577050080841E84
:1002E000080000204E0A000000C80C333333330FDF
:1002F000986E12831141EF8D2114893BE65516CF7C
:10030000FEE6DB18D1844B381BF77C1D901DA4BB87
:10031000E424203284725E228100C9F124ECA1E53C
:100320003D27A706E00A11241FBECFEFD1E2DEBFB2
:10033000CDBF00E00CBF13E0A0E0B2E0ECE3F2E2DE
:1003400000E00BBF02C007900D92A438B107D9F7A7
:1003500024E0A4E8B3E001C01D92AA3EB207E1F791
:1003600011E0C2E9D1E000E006C021970109802F29
:10037000FE010E94020BC139D10780E00807A9F7EE
:1003800051D50C940D113CCEFC01A089B18982E0BD
:100390008C93A485B5851C92A685B7858FEC8C932C
:1003A000108EA489B58986E08C93A289B3898C913B
:1003B00080618C93A289B3898C9188608C93A28987
:1003C000B3898C9180688C930288F389E02D8081B9
:1003D0008F7D80830895CF92DF92EF92FF920F93EB
:1003E0001F93CF93DF936C017A018B01C0E0D0E0C3
:1003F000CE15DF0589F0D8016D918D01D601ED9103
:10040000FC910190F081E02DC6011995892B11F422
:100410007E0102C02196ECCFC701DF91CF911F91E1
:100420000F91FF90EF90DF90CF900895FC01A0898D
:10043000B1898C91A689B78982FD0FC09C91818D6D
:100440008F5F8F73228D821749F0218DDF01A20FFC
:10045000B11D5D969C93818F08958C910895FC0148
:10046000918D828D981761F0828DDF01A80FB11DEB
:100470005D968C91928D9F5F9F73928F90E008950F
:100480008FEF9FEF0895FC01918D828D981731F0C9
:10049000828DE80FF11D858D90E008958FEF9FEF1D
:1004A0000895FC01918D228D892F90E0805C9F4FF3
:1004B000821B91098F73992708958EE893E0F1DFED
:1004C00021E0892B09F420E0822F08958BE294E04B
:1004D000E8DF21E0892B09F420E0822F0895FC0158
:1004E000848DDF01A80FB11DA35ABF4F2C91848DBD
:1004F00090E001968F739927848FA689B7892C93F2
:10050000A089B1898C9180648C93938D848D98138C
:1005100006C00288F389E02D80818F7D8083089555
:10052000EF92FF920F931F93CF93DF93EC0181E043
:10053000888F9B8D8C8D981305C0E889F9898081FF
:1005400085FD23C0F62E0B8D10E00F5F1F4F0F733C
:100550001127E02E8C8DE8120BC00FB607FCFACFE6
:10056000E889F989808185FFF5CFCE01B8DFF2CF28
:100570008B8DFE01E80FF11DE35AFF4FF0820B8FC8
:10058000EA89FB898081806207C0EE89FF896083E8
:10059000E889F98980818064808381E090E0DF913F
:1005A000CF911F910F91FF90EF900895CF93DF931C
:1005B000EC01888D8823C1F0EA89FB89808185FD63
:1005C00005C0A889B9898C9186FD0EC00FB607FCBD
:1005D000F5CF808185FFF2CFA889B9898C9185FFFD
:1005E000EDCFCE017CDFE8CFDF91CF91089580E0A1
:1005F00090E0892B19F06ADF811120C080E090E043
:10060000892B19F05ADF81111CC080E090E0892B02
:1006100041F080E090E0892B21F00E9400008111E0
:1006200013C080E090E0892BA1F080E090E0892B5E
:1006300081F00E94000081110AC008950E9400000C
:10064000DDCF0E940000E1CF0E940000EACF0C94B1
:100650000000089590E0FC013197E231F10508F0C7
:100660004DC08827EE58FF4F8F4FCCC78091800038
:100670008F7703C0809180008F7D809380000895E4
:1006800080918000877FF9CF84B58F7702C084B5D1
:100690008F7D84BD08958091B0008F7703C08091D5
:1006A000B0008F7D8093B0000895809190008F7787
:1006B00007C0809190008F7D03C080919000877F5C
:1006C0008093900008958091A0008F7707C080915B
:1006D000A0008F7D03C08091A000877F8093A00041
:1006E0000895809120018F7707C0809120018F7D30
:1006F00003C080912001877F8093200108951F937C
:10070000CF93DF93EFEEF1E09491E9EAF1E0D49139
:10071000E3E6F1E0C491CC23D1F0182F992311F036
:10072000892F98DFEC2FF0E0EE0FFF1FE45CFE4F07
:10073000A591B4918FB7F894111105C09C91ED2F3C
:10074000E095E92302C0EC91ED2BEC938FBFDF9194
:10075000CF911F9108953FB7F894809189039091AC
:100760008A03A0918B03B0918C0326B5A89B05C08A
:100770002F3F19F00196A11DB11D3FBFBA2FA92F20
:10078000982F8827820F911DA11DB11DBC01CD019D
:1007900042E0660F771F881F991F4A95D1F7089589
:1007A0008F929F92AF92BF92CF92DF92EF92FF9281
:1007B0006B017C01D0DF4B015C01C114D104E10469
:1007C000F104E9F0C8DFDC01CB0188199909AA0915
:1007D000BB09883E9340A105B10578F321E0C21A18
:1007E000D108E108F10888EE880E83E0981EA11C6C
:1007F000B11CC114D104E104F10421F7DECFFF9054
:10080000EF90DF90CF90BF90AF909F908F90089522
:10081000CF93DF932091E4043091E504232B79F00A
:10082000FC01C091E004D091E10460817181CE01AE
:100830000E94430D009719F08C1B9D0B02C08FEF97
:100840009FEFDF91CF9108950E942F0D61157105E3
:1008500079F0FB0101900020E9F73197AF01461BC9
:10086000570BDC01ED91FC910280F381E02D19948E
:1008700080E090E008950F931F93CF93DF93EC01F6
:10088000E5DF8C016AE172E0CE01E0DF800F911FAD
:10089000DF91CF911F910F9108950F931F93CF93E5
:1008A000DF93EC01E881F981DB0114964D915C91B5
:1008B00015976D917C910280F381E02D19958C0143
:1008C0006AE172E0CE01C2DF800F911FDF91CF910C
:1008D0001F910F9108950F931F93CF93DF93EC0116
:1008E00088819981009729F02A813B812617370753
:1008F00080F48B016F5F7F4FCED7009761F09983B3
:1009000088831B830A832C813D81232B11F4FC01F6
:10091000108281E001C080E0DF91CF911F910F91A3
:100920000895EF92FF920F931F93CF93DF93FC01F3
:10093000248135816115710511F480E018C04115DD
:100940005105A1F07B01EC018A01020F131FB801D0
:10095000C2DF882391F3288139818C819D81B70181
:10096000820F931F0E943C0D1D830C8381E0DF9159
:10097000CF911F910F91FF90EF900895CF93DF9348
:10098000EC0188819981009709F0EDD619821882CF
:100990001D821C821B821A82DF91CF910895CF9312
:1009A000DF93EC016115710559F0FB010190002006
:1009B000E9F73197AF01461B570BB3DF811102C036
:1009C000CE01DCDFCE01DF91CF910895CF93DF938D
:1009D000EC01FB014481558160817181A2DF8111AD
:1009E00002C0CE01CBDFCE01DF91CF910895EF920F
:1009F000FF920F931F93CF93DF93EC017B018A014A
:100A0000BA0169DF811103C0CE01B8DF07C01D83C1
:100A10000C83B701888199810E943C0DCE01DF9142
:100A2000CF911F910F91FF90EF900895CF93DF9397
:100A3000EC016115710551F0FB0101900020E9F70F
:100A40003197AF01461B570BD2DF01C097DFCE01B4
:100A5000DF91CF910895CF93DF93EC01FB018617CF
:100A6000970751F0608171816115710521F0448112
:100A70005581BDDF01C082DFCE01DF91CF910895A6
:100A8000FC01118210821382128215821482E3CF3C
:100A9000FC01118210821382128215821482611568
:100AA000710549F0FB0101900020E9F73197AF0192
:100AB000461B570B9CCF0895FC018081918153C642
:100AC000EF92FF920F931F93CF93DF93CDB7DEB7D3
:100AD000A1970FB6F894DEBF0FBECDBF7C01CB014E
:100AE000BA01F701118210821382128215821482D8
:100AF00042E0420F8E010F5F1F4FDFD7BC01C701DD
:100B000095DFA1960FB6F894DEBF0FBECDBFDF9183
:100B1000CF911F910F91FF90EF9008950F931F9326
:100B2000CF93DF93CDB7DEB762970FB6F894DEBFF1
:100B30000FBECDBF8C01CB01F80111821082138250
:100B400012821582148250E0BE016F5F7F4F0E94B7
:100B5000D10DBE016F5F7F4FC80168DF62960FB68F
:100B6000F894DEBF0FBECDBFDF91CF911F910F91E3
:100B700008951F920F920FB60F9211240BB60F9289
:100B80002F933F934F935F936F937F938F939F9395
:100B9000AF93BF93EF93FF938EE893E0A0DCFF91B8
:100BA000EF91BF91AF919F918F917F916F915F91E5
:100BB0004F913F912F910F900BBE0F900FBE0F9052
:100BC0001F9018951F920F920FB60F9211240BB61B
:100BD0000F922F933F934F935F936F937F938F93D6
:100BE0009F93AF93BF93EF93FF938EE893E01EDC48
:100BF000FF91EF91BF91AF919F918F917F916F91F5
:100C00005F914F913F912F910F900BBE0F900FBEB0
:100C10000F901F9018951F920F920FB60F921124EC
:100C20000BB60F922F933F934F935F936F937F93E6
:100C30008F939F93AF93BF93EF93FF938BE294E0D7
:100C40004EDCFF91EF91BF91AF919F918F917F917A
:100C50006F915F914F913F912F910F900BBE0F902D
:100C60000FBE0F901F9018951F920F920FB60F9204
:100C700011240BB60F922F933F934F935F936F9373
:100C80007F938F939F93AF93BF93EF93FF938BE2E9
:100C900094E0CCDBFF91EF91BF91AF919F918F9149
:100CA0007F916F915F914F913F912F910F900BBE6C
:100CB0000F900FBE0F901F9018951F920F920FB6B6
:100CC0000F9211242F933F938F939F93AF93BF93D2
:100CD0008091850390918603A0918703B09188034A
:100CE0003091840323E0230F2D3720F40196A11DBA
:100CF000B11D05C026E8230F0296A11DB11D20934A
:100D000084038093850390938603A0938703B09315
:100D100088038091890390918A03A0918B03B091FD
:100D20008C030196A11DB11D8093890390938A03C2
:100D3000A0938B03B0938C03BF91AF919F918F9140
:100D40003F912F910F900FBE0F901F901895EEE8D6
:100D5000F3E01382128248EE53E060E070E04483D7
:100D60005583668377838EE092E0918380832DECB8
:100D700030E0358724872CEC30E03787268728EC55
:100D800030E0318B208B29EC30E0338B228B2AEC46
:100D900030E0358B248B2EEC30E0378B268B118E98
:100DA000128E138E148EEBE2F4E0138212824483CF
:100DB0005583668377839183808385EC90E0958764
:100DC000848784EC90E09787868780EC90E0918B15
:100DD000808B81EC90E0938B828B82EC90E0958B02
:100DE000848B86EC90E0978B868B118E128E138EFF
:100DF000148E6CE172E080EE94E04ADE6CE172E009
:100E00008AED94E045DE6DE172E084ED94E040DE31
:100E100065E272E08EEC94E03BDE6EE372E088EC1B
:100E200094E036CECF93DF93CDB7DEB762970FB69F
:100E3000F894DEBF0FBECDBF789484B5826084BDC8
:100E400084B5816084BD85B5826085BD85B58160CE
:100E500085BD80916E00816080936E00109281004C
:100E60008091810082608093810080918100816007
:100E700080938100809180008160809380008091C8
:100E8000B10084608093B1008091B0008160809354
:100E9000B0008091910082608093910080919100D8
:100EA0008160809391008091900081608093900098
:100EB0008091A10082608093A1008091A100816057
:100EC0008093A1008091A00081608093A000809118
:100ED00021018260809321018091210181608093B2
:100EE00021018091200181608093200180917A000E
:100EF000846080937A0080917A00826080937A0087
:100F000080917A00816080937A0080917A00806875
:100F100080937A001092C100E9EAF1E02491E3E6BF
:100F2000F1E08491882399F090E0880F991FFC01EB
:100F3000E85FFE4FA591B491FC01E45CFE4F859102
:100F400094918FB7F894EC91E22BEC938FBFEEE97C
:100F5000F1E02491E8E5F1E084918823C9F090E084
:100F6000880F991FFC01E85FFE4FA591B491FC0129
:100F7000E45CFE4F459154913FB7F8949C91822FC9
:100F8000809598239C93FA019081892380833FBFA9
:100F90008BE294E0F9D961E472E08BE294E06BDCDF
:100FA0008EE893E0F1D961E572E08EE893E063DCCE
:100FB00064E670E080E090E0F3DB6BE572E08EE8E1
:100FC00093E059DC64E670E080E090E0E9DB60E605
:100FD00072E08EE893E04FDC64E670E080E090E041
:100FE000DFDB6AE672E08EE893E045DC64E670E001
:100FF00080E090E0D5DB20EA422E26E8522E6624DF
:101000006394712CE4EEF1E08491EEE9F1E0149147
:10101000E8E5F1E00491002379F081111BDBE02F7A
:10102000F0E0EE0FFF1FEE5DFE4FA591B4918C91A5
:10103000182311F081E001C080E061DB8EE893E0CD
:1010400030DA892B09F4BAC284E6282E312C8EE8D6
:1010500093E027DA892B09F4B1C28EE893E0FFD937
:10106000182F80938D03873391F76AE070E080E05A
:1010700090E096DB19831A8241E050E0BE016F5F79
:101080007F4F80EE94E04DDC0AE010E08EE893E0C4
:10109000E6D980938D0389831A8241E050E0BE0136
:1010A0006F5F7F4F80EE94E03CDC6AE070E080E0B0
:1010B00090E076DB0150110949F768E772E08EE8AD
:1010C00093E0D9DB6DE772E08BE294E0BFDB60EE8A
:1010D00074E08BE294E0E1DB68EE73E080E090E0A6
:1010E0005FDB53D52CEB32E040E050E00E94B010C3
:1010F000DC01CB01885F984FAF4FBF4FB1016FD27A
:10110000072E000C880B990BF0D76B017C013DD5A5
:10111000A30192010E94B0104B015C0166E872E0ED
:10112000CE010196B5DCCE01019672DB8C01CE01B9
:101130000196C2DC17FD2DC04AE0B401CE010D9628
:10114000EDDC22E0B701A601CE010796B9DC62E929
:1011500072E0CE0101969CDCBE01695F7F4FCE013B
:10116000019634DC63EB72E01ADCBE01635F7F4F
>Просто нужно понимать
Это ардуино. А я нуфаг и школьник. Понимать надо тому, кто институты заканчивал и микроволновки РАЗРАБАТЫВАЕТ для эленберга. А мне надо время посчитать, скажи как сделать?
В цикле делаешь delay, после увеличиваешь переменную на один, если твой delay = 1секунда, то в переменной время в секундах, лол, правда точность в проебе. Как только датчик отозвался - обнуляешь переменную и считаешь дальше.
>delay
ну мне как бы надо еще по сериаллу от жсм ждать сигналов и температуру измерять, пиздец не точно будет.
мега самая конячая, там много ШИМов, сериалов, прерываний и тп.
уно и нано только размером отличаются.
в промини нет сериал-усб, т.е. без другой ардуины\погроматора ее не прошить.
тиньки не все с усб, у всех мало ног.
На уно китаезы делают кучу выводов, только что-то мне подсказывает, что раз они подключены к одной и той же ноге, то и управляться будут одинаково. Так что да, мега - вариант.
https://ru.aliexpress.com/item/1pcs-New-2016-UNO-R3-ATmega328P-CH340G-MicroUSB-Compatible-for-Arduino-UNO-Rev-3-0-hei/32692583503.html?spm=2114.03010208.3.27.39erGe&ws_ab_test=searchweb0_0,searchweb201602_1_116_10065_117_10068_114_115_113_10000009_10084_10083_10080_10082_10081_10060_10062_10056_10055_10037_10054_10033_10059_10032_10099_10078_10079_10077_10000012_10093_426_10103_10073_10102_10000015_10096_10052_10108_10053_10107_10050_10106_10051,searchweb201603_1,afswitch_4,single_sort_0_default&btsid=f80048c6-e1e4-47ea-bb16-231c3554b93c
Тут дубляж идетвсех пинов. что если на А4 и на его дубль поставить два разных устройства? Косяк будет же?
Ты че шутишь? Это просто и разъем и дырка для пайки. Для удобства же.
На вот без дырок https://ru.aliexpress.com/item/Arduino/32689187352.html
Представляю как ты от CH340G ахуеешь, раз тебя дырки смущают.
Дырки чтоб припаивать что то.
А ахуешь от того, что она у тебя не заработает из коробки сразу.
Тогда ладно.
>>265469
Господа, никого обидеть не хочу, сам иногда использую про-мини в готовых устройствах, но неужели у вас совсем не принято разводить платы с атмегой и нужной обвязкой под конкретную задачу, зачем в итоговом девайте делать этажерку из больших плат, с кучей лишний разъемов и лапшу из проводов?
Пришел в ардуино тред@Не доволен ардуинами
Все дело в том, что ардуино для нубов, школьников, интересующихся. Выступает как платформа для быстрого прототипирования, отсюда такой язык, шилды, работа из коробки тут основное.
Вообщем задача проста: считать с датчика сигнал, принятый с пульта что-то сделать. Моя проблема в следующем:
во всех примерах работы с ИК используется строка в которой задают функцию в качестве переменной класса:
IRrecv irrecv (2); //с какого порта принимать значения
Я, вообще не эксперт по крестам, да и по программированию тоже. Я не понимаю нафига при объявлении переменной класса нужны скобки, это же - не метод, но ок, это явно нужно чтобы идентифицировать пин, поскольку все примеры содержат такие же строчки, даже те, которые поставляются с зип-файлом.
Собираю и получаю:
undefined reference to `IRrecv::IRrecv(int)'|
Если переименовываю свою "irrecv" в строке с "IRrecv irrecv (2); //с какого порта принимать значения" - получаю ошибки на каждой строчке с методом подключаемого хедера, если неправильно подключаю хедер, среда разработки ругается на первом же упоминании IRrecv, что я делаю не так-то?
Вот, бро, убивал бы пидарасов.
Ну это же для всех доска, пусть тут спрашивает, а ты тут отвечай. Хули приватики разводить?
Скорее всего да, если у тебя проверка в цикле. Обходи программно, в чем беда?
>Я не понимаю нафига при объявлении переменной класса нужны скобки, это же - не метод
Это параметр для конструктора, насколько я понимаю.
Вообще хуй его знает, у меня c IRRemote проблем не было, может ты библиотеку не подключил?
проверь с другой платой/датчиком
обработка сигнала (0 или 1), пощелкать релюшками на выходе. есть часы и флешка. надо сбрасывать на сд флешку то, с какого датчика и в какое время было событие, события редкие.
Серворазъемы, g - земля, v - питание (+5в), s - сигнал т.е. нога меги. Одним строенным кабелем можешь подключить сервопривод, регулятор, или любое устройство с однопроводныи интерфейсом.
Arduino Music and Audio Projects
тайни / zksffof
нет не на ардуине, устройство самостоятельное.
атмега32 и всякая периферия
настройка часов через уарт.
>пощелкать релюшками на выходе
>атмега32
>всякая периферия
Тебя хуй пойми. Цена может плясать от 50 до 5000$
Нормальное ТЗ ставь. Какие задачи, какое железо, поподробнее, а то и ответ будет такой же.
вот это >>265598
на атмеге328\168 с часами DS1307 и sd картой с записью в тхт могу сделать в пердуИДЕ с загрузчиком в атмеге
Где все эти ваши чипы и блиперы на этих ваших ардуинах, бэтмены? Не поверю, чтобы никто да и не обмазался.
Сам думаю про это, собственно.
Есть готовое. Плати 100$
Проиграл. Тебе вообще для чего? Если необходимо дрыгать ножкой и вести запись в память по дате/времени, а сам не умеешь, то да. А если ты решишь всё-таки сам сделать, то это на неделю работы.
>Другой "анон".
Читай внимательнее. Просто интересны расценки за работукушать ведь тоже хочется :3.
Да даже на пару часов, тут 2 библиотеки слить из примеров, RTC и SD
помоги, анон
я все думаю, как запилить свой ебалу, чтобы вывести звук с пары чипов YM-2149 и пустить с вынесенными физическими ручными контроллерами функций на клавишах и миди-девайсах, при этом всем желательно автоматизировав весь механизм считывания-преобразования-выдачи звукового сигнала в самой ардуине.
функции должны рулиться от дефолтной usb-клавиатуры от пека на 108 кнопок + шилдовый дисплей минимальный, возможно, какое-то мобильное лоу-говно. при острой необходимости, можно ужаться в алиэкспрессовый щит 16 кнопок + лампочки, но клава с дисплеем мне видится дешевле и функциональнее.
выход-вход миди. миди-сигнал с чипа проходит модуляторы, 2-3 фильтра, 2 экспрессии – пока лучшим решением считаю взять основным донором детский старый синтезатор, лол. оно хотя и китч, но за 500-800 можно взять усредненный старый/хуевый говнокитай с большим набором кнопок, куда можно забить часто используемые моды/фильтры + уже появляется корпус, куда можно прикрутить всю это охуительную конструкцию. еще из охуительной конструкции звук должен выходить через два тюльпана.
по большому счету, мне нужно понять, сколько мне нужно артуинок, чтобы они выдержали всю эту хуиту. а как только я начинаю делать схему, то получается говнище и лабиринт мрака.
может есть какой-то более очевидный вариант сложить все это?
набрал немного говна и докупил на али же паяльник за четыреста
https://ru.aliexpress.com/item/EU-Plug-60W-220V-Temperature-Adjustable-Electric-Welding-Solder-Soldering-Iron-Handle-Heat-Pencil-Tool-Wholesale/32695809936.html?spm=2114.13010608.0.0.4BiAOL
наверное, не самый всратый.
пока идет первая корзина итемов, которую собрал почти навскидку. и я знаю, что я наверняка проебался где-то, но что еще понадобится, чтобы начать?
https://ru.aliexpress.com/item/ESP8266-Serial-Esp-01-WIFI-Wireless-Transceiver-Module-Send-Receive-LWIP-AP-STA/32278773466.html?spm=2114.13010608.0.0.1oLN6s
https://ru.aliexpress.com/item/The-new-ov7670-camera-module-module-SCM-Acquisition-Module-camera-Special-promotions/696313106.html?spm=2114.13010608.0.0.1oLN6s
+ моушн датчики. Буду пилить камеру, как приедет отпишусь
Правильно заданный вопрос - уже половина ответа.
Правильно сформулированное ТЗ - уже половина проекта.
Поэтому, сформулируй сначала задачу, а потом уже что-то комплектуй. Я лично ничего из твоей мешанины не понял.
>>266103
заебное это занятие.
по хорошему нужен програматор, но он стоит дахуищу денег.
можно слепить и свой одно время тоже озадачился такой проблемой и даже кое чего нашел, но опять же таки там необходим прошитый контроллер и в той статье ни прошивки ни програмулины под этот девайс не было тупо голая плата, шаз погуглил и нарыл вот это
http://radio-uchebnik.ru/shem/svetodiod-i-ego-primenenie?catid=0&id=289
хз како оно будет работать и будет ли вообще работать не упорет ли и безтого капризный паралельный порт? одному богу известно... да и найдеш ли ты его сейчас?
ктамуже прога работает из под доси карочи сплошные подводные грабли...
непрощи ли тебе сразу заняться атмегой? там програматоры достаточно дешевы и всяких програмулин прошивальщиков горы в интернетах...
я использую это древнее чудо лиш потому что тупо к нему привык и у меня его хуева гора, ну и канечно есть чем шить, нубкам сейчас вкатываца в 8051 помоему вообще нет смысла...
Уже находил версию о том, что это slave-модуль и тебе нужен HC-05 как мастер? Типа такой.
https://mcuoneclipse.com/2013/06/19/using-the-hc-06-bluetooth-module/
nRF24I01 - с ними проще. Но если хочешь, то читай документацию, чтобы знать как включить HC-06 в режим ведущего (MASTER).
CubeMX
Хочу затариться на али ардуиной или чем то похожим,релюшкой и звуковым сенсором
План:сделать из этой ебалы вкл/выкл света путем хлопков или постукиваний по стене
Что делать с питанием?
шапку не читал,тред проматывал,скетч откуда нибудь спизжу
Я через реле буду соединять провода сети домашней,у меня на месте будущей ардуины стоит обычный выключатель.мне нужна мощная релюшка?
10 ампер хватит за глаза.
звуком управлять не особо хорошая идея, начнеш стену допустим сверлить, или сасед ремонтом займеца, да тупо музычку погромче сделаеш...
помоему лучше сделать из 2 датчиков от сигналки один с одной стороны проема двери другой с другова вышел свет выключился вошел свет включился, + какойнить светочувствительный датчик чтобы днем не включался свет...
Мое имхо, лучше всё вывести на смартфон, который всегда под рукой. Если он есть.
https://www.youtube.com/watch?v=gkThfpCpS7Q
>динственное что можно сделать на ардуине это махарайку для себя, потом окажется готовое лучше и дешевле
А на всяких атмегах и стмках ты сделаешь ту же махарайку для себя, которая в человекочасах будет стоить в три раза больше. Твои аргументы бьют по другим МК в первую очередь.
Можешь начать проигрывать
Это тот самый мой смартфон,который всегда под рукой
Тем более,с таким управлением,какое я планирую,ебли меньше
Так что никому не советую закупаться в магазине из оп поста. Не знаю как с качеством товаров, но с доставкой там точно хуево.
В начале января были проблемы с российской таможней
https://www.vesti.ru/doc.html?id=2840148
Возможно, продавец тут действительно не при чем и тебе нужно материть наших прекрасных чинуш и российские магазины лоббирующие свои интересы
1. Посылка валялась у продавца 2 недели.
2. Посылка не покинула китай(продаван накосячил с оформлением?)
Так что российская таможна тут как ни странно не виновата. В ней не было батареек, камер и прочих вещей, с которыми могут возникнут проблемы. Отписал продавцу, посмотрим что ответит, сомневаюсь что напишет что-то кроме "Ну бля не получилось((( Возвращаю деньги".
Новости же были о проблемах с доставкой с алика.
У меня вторая посылка из другого магаза, заказанная на неделю позже, на следующий позже заказа день была Accepted by carrier, а сейчас уже вылетела из китая. Так что не знаю что и думать. Одно дело когда таможня заворачивает, или на почте россии перекатываются по несколько месяцев коробки. Но сейчас ведь явно от продавцов проблемы исходят.
Думаю тут проблемы с внутренней стороны. Много кто жалуется, да и последние все эти законы не радуют почту пидорят сейчас наверное в хвост и в гриву, им не до посылок из китая.
Алсо оффтоп, а нахуй это нужно ☝️Вове? В чем сакральный смысл ебать мозги дяде Ляо? Собрать профит?
Парламент идет навстречу совершенно законным требованиям отечественных ретейлеров и производителей. Если внимательно присмотреться к таможне и налогам в этой схеме, то получается, что Россия из своего бюджета спонсирует конкурентное преимущество китайских производителей.
Какое право имеют ретейлеры на государственную поддержку своих грабительских комиссий?
Где ты видел отечественных производителей микроконтроллеров сопоставимых с обсуждаемыми в треде по характеристикам и цене?
Кто-то что-то делает, я мимоходом видел. Я про отечественных производителей товаров в общем пишу, например электроники из тех же комплектующих, только ввезенных с уплатой таможенной пошлины. Ретейлеры, как и производители, платят пошлины на таможне и налоги в бюджет. Ещё они платят зарплату тем, кто иначе сидел бы на пособии и теперь вместо этого обеспечивает платежеспособный спрос внутри страны и тоже платит налоги. Государство защищает свои интересы.
А софт завезли на апельсинку твою?
А, то что у него Ретейлеры, как и производители, платят пошлины на таможне и налоги в бюджет из своего кармана, это значит норм?
Запомни, дружок, все акцизы, налоги, сборы платят не производители и продавцы, а конкретно ты, из своего кармана.
Нужно максимально простое в изготовлении устройство. Нашел вот такую ебалу на али:
https://ru.aliexpress.com/item/Digispark-Kickstarter-ATTINY85-General-Micro-USB-Development-Board/32540118233.html
Подойдет ли она для этой задачи. Выглядит наилучшим вариантом - юсб порт уже есть, ничего паять вообще не нужно, компактная. Можно ли запрограммировать ее так, чтобы при подключении в юсб порт она делала то, что я описал выше?
Она же большая.
Занимательная экономика. Годится разве что успешных предпринимателей удивлять на платных семинарах.
Понимаешь ли ты при этом, что два одинаковых товара, один, в цену которого заложены налоги и пошлины, и другой, в котором этого нет, конкурируют на одном и том же рынке? И что при прочих равных продаваться они будут одинаково только имея равную цену? И что при равной цене продажи прибыль будет различаться как раз на сумму выплат государству? Дружок.
Ахуеть, почему модуль с ATTINY85 такой дорогой? Ведь модуль с 168 мегой стоит 70 руб, с 328 - 100 руб.
Гугли usb+avr.
Шимом управляешь, показания снимаешь с ацп (через делитель). А там уже пид-хуид контроллер в софте делаешь
Тебе нужен регулируемый понижающий преобразователь. У тебя 2 стула:
Стул первый - делать как сказал >>266905 то есть все управление силовой возложить на пердуину, т.е. через аппаратный шим рулить ключом, с выхода измерять напряжение ацп и софтово рассчитывать нужную скважность шима для нужного напряжения. Это просто по схемотехнике, но практическая реализация будет хуевая, поскольку разрядность и быстродействие шима и ацп голимые, даже если хорошо наладишь пид на выходе будет много шумов. А еще управлять силовой напрямую с меги и подобных мк не стоит, ибо их помехозащищенность и надежность так себе.
Стул второй - сделать контроллер силовой, хоть самоосциллирующий на компараторе с минимальной обвязкой или готовый шим контроллер, на этот контроллер уже подавать шимом или R2R цапом аналоговую величину искомого напряжения, а с ацп мерить выход для индикации. Все быстродействие и управление на шустром компараторе/шим контроллере - нет шумов на выходе и высокая частота преобризователе, можно использовать шим хоть с частотой в единицы килогерц - и высокой разрядностью, главное побольше сглаживающий фильтр поставить, зависание или глюки твоего говнософта не приведут к последствиям. Вместо ебли с пид контроллером будет ебля с учетом возможных нелинейностей зависимости выходного напряжения от заданного, хотя здесь можно сделать простую автоподстройку на интегральной составляющей.
Ты этого хочешь, пёс?
Нажимаешь кнопку и МК генерирует определенную последовательность нажатий клавиш?
Если да, то могу рассказать, как это сделать максимально дёшево и компактно.
Очевидно к ардуине, это же тред про ардуину. На крайний случай к пи
Устройство Разрешение Количество мегапикселей
Кнопочный телефон до 240×320 до 0,1 Мп
iPhone 4 640×960 0,6 Мп
Дисплей ноутбука
(типичный на 2013 г.) 1366×768 1 Мп
Отдельный монитор для компьютера
(типичный на 2013 г.) 1920×1080 2 Мп
Телевизор NTSC 640×480 0,3 Мп
Телевизор HDTV (HD Ready) 1280×720 0.9 Мп
Телевизор HDTV (Full HD) 1920×1080 2 Мп
Apple iPad 3 2048×1536 3.1 Мп
Смартфон LG G3 (Quad HD) 2560×1440 3.7 Мп
MacBook Pro с дисплеем Retina 2880×1800 5.2 Мп
Телевизор UHDTV 3840×2160 8.3 Мп
Стандарт IMAX до 7680×4320 до 33.2 Мп
5mp = 5 мегапикселей, с расширением допустим, которое ты будешь использовать, 2560144016 бит цветности. Около 7372800 байт в единицу времени. Если ты хочешь как минимум 5 кадров в секунду, то 36864000 байт в секунду, 35,15625 мегабайт в секунду. Процессор у тебя 8 битный. Если ты сможешь протянуть такое изображение через него, то да.
Вот, это то, что нужно. Спасибо, анон.
Расскажи, пожалуйста.
На практике нормально работает только если вращать медленно, 2 щелчка в секунду. Если быстрее - скачет туда сюда. Проблема в программе или дребезге, стоит впаять керамику?
Есть какая-то студия в которой есть плагин процессинг. Но смысл? Пиши уж на с тогда сразу
В той же ардуине ide можно на С написать и отправить. Библиотеки открой, там С один
>267235
>проблемы купить К561ЛЕ5 что ли? при чём тут телевизор?
Телевизор как пример донора. Наверное не проблема.
Нет не так.
>I2C не работает
>Зачем тебе I2C, вон UART есть, он лучше. Его пользуй.
>А если в нужном датчике только I2C, то выбрось его. Купи UART. Или переходник с I2C на UART.
Не устраивай клоунаду, ииц не работает из-за элементарной ошибки в монтаже на плате и оче легко фиксится, вместо покупки нового за большую цену.
А 500р за атмегу на цветастой плате действительно неадекватная цена.
О как, и как мне это фиксить? Логический пробник собирать по цене этой же ардуины? Контакты от ножек разведены без повреждений, что еще и и2с влиять может я хз, скорее всего там чип кривой к хуям. Заказывать новый - ну такое себе решение в виду того, что единично они там от сотки стоят да и монтаж этой модели геморой. Так как фиксить то? ЧТо проверять?
AT + LF + CR
AT+CMGF=1 + LF + CR
AT+CFUN=1 + LF + CR
AT+CMGS="+номер_телефона",129,1 + LF + CR
ГАЗОМ ПАХНЕТ!!! + #29
AT+CFUN=0
#29 - обязательно
Резисторы подтяжки проверь, питание проверь, не перепутал ли SCL и SDA, не перепутаны ли SCL и SDA в библиотеке, верная ли скорость в библиотеке, почитай маны уже.
Для I2C выводы должны работать в режиме с открытым стоком, сконфигурируй эти выводы отдельно и проверь мультиметром. Даже если аппаратный I2C неисправен (как!?), программный у тебя должен работать.
Также линии I2C должны быть притянуты резисторами к питанию. В каком месте это делается в ардуине - не знаю, ардуинами не увлекаюсь.
>Логический пробник собирать по цене этой же ардуины?
Логический пробник - это несколько транзисторов, два светодиода, кучка резисторов.
Мне что то не верится, что чип живой, а какие то части не работают.
>Буду теребонькать компоненты.
Можно проще:
1. Сконфигурируй вывод в режим с открытым стоком.
2. Выдай на этот вывод 0. Проверь напряжение мультиметром.
3. Выдай 1. Проверь напряжение мультиметром. Переключи мультиметр в режим миллиамперметра, и ткни между выводом и землей. По измеренному току можно посчитать сопротивление подтягивающего резистора.
if (digitalRead(LED == HIGH)) {
digitalWrite(LED, LOW); }
else {
digitalWrite(LED, HIGH); }
Не работает? Я совсем даун и это не так делается? Хотел зожигать и гасить диод кнопкой
Спасибо, заработало.
подскажи, пожалуйста. бюджет сейчас 200р на какой-нибудь кит.
Наверное LM1117 задымился. У меня похожее было. Они как-то умеют дымиться, но продолжать работать.
Они дешевые, можешь их накупить. Они разных номиналов есть. Но дают до 500мА и то на практике при минимальных разностях в напряжениях и до 20 вольт входящих. (Если ты из 20 вольт захочешь сделать 1.5, он взорвётся при 50мА наверное)
Я люблю LM317, они до 35 вольт и 1500мА могут выдать. Ещё и радиатор прикрутить можно.
Смотри, дядь:
Midi-синт очень удобно подключать сразу в USB, чтобы он автоматом определялся без дополнительных драйверов как midi-устройство. Чтобы это сделать существует несколько вариантов:
1. берешь Arduino Uno r3 (но не на сраном ch340 в качестве usb-ttl, а с atmega16u2 вроде того: http://ali.onl/jsE), после заливки прошивки гуглишь и устанавливаешь в atmega16u2 HIDUINO;
2. берешь Arduino micro pro с atmega32u4, ставишь библиотеку MIDIUSB (https://www.arduino.cc/en/Reference/MIDIUSB), profit! Этот вариант удобнее всего, ибо просто прошивать.
3. если у тебя только Arduino Nano или UNO R3 с ch340, можешь сделать Serial to MIDIUSB конвертер на Digispark (на attiny85) с помощью библы SoftwareSerial_Int0 и DigisparkMIDI. Заодно слегка поебёшься, лол. Будешь отправлять по UART на Digispark midi команды, а Didgispark уже засылать по USB на пекарню. Правда тут только в одном направлении данные будут идти.
Дальше уже можешь мигать и обрабатывать нажатия кнопок с вращением потенцияметрами. Того, что ты уже накупил, хватит сполна.
интересно разобраться с этим дерьмом
https://telegram.me/acidhardware
уважил, анон, спасибо тебе!
уточню пару моментов – у меня ардуинка на пикче. нужно докупать нану или на дипе, учитывая, что сигнал пойдет с ямаховского YM2149? потому как в этих чипах весь цимес, евпочя.
Это-то понятно, не понятно, почему esp8266-01 3.3v ttl от Arduino M0 не воспринимает? Напряжения мерил, 3.27v, по SERCOMM другую шину на других пинах подключал, никакой реакции... Нихера не понимаю...
Местами менял, кек?
А у тебя бывало, анон?
У меня такой же spi, и сука, как я не ебался- он показывает через строчку, пиздос. Пробовал несколько библиотек, железный и софиовый spi- хуй.
А так, заебись, что диод китайцы для тебя предусмотрели.
Хмм, кстати, у меня проблема с черезстрочностью была, когда я не тот адрес выбирал. Может у тебя требуется какая-то первоначальная настройка?
как мне видится, придется пару раз подключить. сам синт хочу самостоятельной единицей сделать, но в идеале хорошо бы ему жрать пианоролл входящий с сигналов секвенсора, это же миди-синт, епт. это меняет что-то?
Если к пекарне подключать по УПШ (USB) не собираешься, то срать три кучи.
http://pastebin.com/T1nPDGUT
В микросекундах использую значения 2000 и 700 для калибровки.
Вы ебанулись? У вас там на скольких гигаерцах ардуины работают, наркоманы. Емкости у них парахитные сука.
Ага. Делал зарядку для планшета, вставил, не заряжает. Но я так намучался с ней, что забил.
Через месяц снова решил попробовать, нашел микроусб коннектор, вставил штекер зарядки и начал прозванивать. Оказалось у меня на плюсе минус, а на минусе обрыв.
Мне повезло, что там провод отпаялся перед тем, как я термоклеем залил коннектор. Иначе сжег бы нахуй и планшет и телефон, на котором тестировал.
Скобки не хватает?
Суть такова: возникла проблема с RAMPS. Думаю, что-то с питанием, потому что последнее время периодически тух экран и загорался только при подключении принтака по USB, а теперь вот потух окончательно. RepRap не мой и я в этом ничего не смыслю. Как проверить, в чем проблема, и ликвидировать ее?
Я хз, конечно, что там у тебя, но проверь все компоненты на работоспособность, измерь напряжение и т.д.
>>268365
Хуёв пососёте от наводок на ацп. Я тогда сделал такой, в фрутилупсе не успеваешь даже линкануть требуемый потенциометр на крутилку, привязывается тот, который первый читается и засылает своё значение в порт. Это что, фейдер привязаный к такой нестабильной хуете носится как ебанутый туда-сюда с большой частотой. Если синт будет только кнопочный без всяких там градаций то конечно похуй, но кому нужен такой синт?
Двачую этого, АЦП только тогда хулиганит, когда разведены проводники к нему через жопу. Если АЦП используется не на всех ножках, то остальные рекомендуют ставить на выход. У меня если висит АЦП на ADC0, ADC1 и ADC1 не задействован, то есть малая наводка, единиц 30, с ADC0 на ADC1.
У меня на атмега328 на соседние, висящие в воздухе каналы наводится тот же сигнал, что и не на висящем.
Резистор на землю на 10к устраняет эту проблему.
Если выводы пердуины работают, то гироскоп полетел. Скорее всего там пробило датчик или желтый конденсатор.
I2c scanner залей, посмотри, он находится или нет.
Нет. На стм32 есть готовые в сети проекты.
и что делать? покупать другой мк?
а может существует какая-нибудь внешняя sram с общением по spi?
Это спортивный интерес или конкретная задача, расскажи, интересно просто.
Ну и как обычно скажу, что можно приобрести платку stm32f103 за 120р на али, запердолить ее к ардуиноИДЕ, и там будет побольше sram
>конкретная задача
это. Нужно накапливать некоторые данные в массив из 1000 элементов, затем отправлять их.
>что можно приобрести платку stm32f103 за 120р на али
Это да, но стм нужно ждать месяц, а атмега8 под рукой лежит. но раз нельзя так, то придется ждать месяц
Я с дивана, но сам вопрос хранения данных можно закостылить с использованием SD-карты, не?
каким образом? для передачи то все равно нужно весь массив загружать в оперативную память.
хочу что то вроде умной розетки на китайской nano
поскольку я тупой ничего умнее кроме как размыкать и замыкать внешнюю 220v с помощью механики(сервопривода) придумать не могу подскажите:
есть ли более простые альтернативы сервоприводу в данном случае?
насколько хороший выбор nano платы в данном проекте?(выбрал из-за энергопотребления)
если тут есть сенсей в ардуино сфере - обрисуйте своё видинее решения задачи, и какие железки докупить
Какбы задачу ты должен обрисовать.
Тебе надо реле кстати какая нагрузка? до 1,5 кВт и 2.2 в пике пойдёт такое
http://www.aliexpress.com/item/32271350012/32271350012.html
Nano тоже пойдет, но щелкать реле пойдет и тинька, но по цене почти одно и то же.
До сих пор непонятно, что будет управлять включением и выключением.
>Тебе надо реле кстати какая нагрузка? до 1,5 кВт и 2.2 в пике пойдёт такое
>http://www.aliexpress.com/item/32271350012/32271350012.html
>
Спасибо, то что надо!
нагрузка 400 Вт
>Nano тоже пойдет, но щелкать реле пойдет и тинька, но по цене почти одно и то же.
>
планировалось делать включение/выключение по таймеру с засыпанием между циклами
цикл дважды в сутки на 5 минут каждый
>Какбы задачу ты должен обрисовать.
если очень коротко описать хотелку - включение розетки 220 дважды в сутки на 5 минут
в любом случае, ты уже очень помог, спасибо
а имеет ли смысл этот модуль если точное расписание не важно?
просто поставить задержку 12 часов с момента старта и всё
потому что нельзя. нужно отправлять одним пакетом все данные.
Ну при сбросе будет хер пойми.
>сколько его хватит
Не хватит. На самом деле там 3 массива: 8, 16 и 16 бит, т.е. всего нужно 5 кб.
>Как часто нужно писать данные?
хз, неизвестно. от 0.1 секунды до часа. Размер массива тоже неизвестен, я взял с запасом 1000, чтобы хватило. А данные должны передаваться по команде и сразу весь пакет.
>от 0.1 секунды
Не, тогда еепром не покатит, она медленная на запись, да и количество циклов записи/стирания ограничено. Либо покупай другой контроллер, либо пердоль внешнюю память.
Сап радач, хочу помигать WS2812B через Ардуино/nodeMCU. Помогите с рассыпухой, я уже путаюсь в этих резисторах-мосфетах. Хочу запитывать плату и 2-3 м 144-диодной ленты от одного блока, может, уже выкладывали готовые решения?
Так вот суть в том, что нужны ваши рабочие библиотеки. Покидайте плеаз.
[/spoiler]Случайно отправил предыдущий пост, не дописав запрос[/spoiler]
Тут нахуй не нужны ни резисторы, ни мосфеты. Подрубаешь питание ленты к источнику 5В мощностью >85-130вт, а управляющий контакт к ноге микроконтроллера, всё.
Из ютуба первое же.
https://www.youtube.com/watch?v=UVISnxXh_VY
> просить советы на харкаче, обижаться когда предлагают сделать бочку
ws2812b arduino, очевидно.
Я что то не догоняю, ты понимаешь, что там надо тупо 5в источник достаточной мощности? Там нет каналов ргб, там надо байтики отправлять.
Если там софт от ардуины, то ещё и кварц нужен.
И вообще если UART хочешь, нужен кварц для синхронизации.
Думаешь тут кто-то их сам писал? Тоже ведь в гугле нашли да скачали.
Можно, но резисторов надо обязательно три штуки со стороны катода, иначе хуйня получится.
Ну ардуина это и есть атмега328p, USB-UART и рассыпуха.
Ну и ещё загрузчик прошитый USBAsp'ом например. Который сделан на другой атмеге328p.
Раз из матричного принтера вырвал гору конячих дарлингтонов, вот они бы хорошо подошли
Кстати uln2004 тебе подойдет, по полампера на канал, вместо 0,03.
А точнее это ПИК 18А2455. Похоже, по криворукости съебнул ему прошивку или что-то такое. Запускаю в режиме прошивки, он запускается, пытаюсь залить через PICDEM USB новую - отвечает что прошился, но на самом деле нихуя не прошился, при считывании нанд не совпадает. При попытке залить старую прошивку - "Failed to program CONFIG DATA". Я конечно понимаю что это Ардуино а не пик тред, но может кто сталкивался? Если что есть ардуина, может через неё можно как-то залить туда хекс?
Так а мне больше и не нужно, у меня просто цифровой дисплейчик матричный. По пину на каждый канал.
Заказал 10 штук на али.
Кобру
Надо генерировать сигнал, эмулируя чип. А там длительность импульса около 5 нс.
Beaglebone на am3358. Там два risc сопроцессора на 200 мгц именно для твоих нужд, без пайплайна, инструкция за один такт
Даташит на регистр посмотри сперва.
Пока защёлка не будет замкнута - состояние выходов регистра изменяться не будет.
анон, расскажи плз, если есть план, как можно подключить сенсор к ардуине, каким образом можно прилепить его на малину?
пример: сенсор пыли sharp gp2y1010au0f, к ардуино подключается на пины D12 и А6, куда его пихать на малине чтобы не спалить и все заработало?
Куришь маны
@
пилишь драйвер
@
а нет, это же малина
@
качаешь драйвер
@
смотришь инструкцию на ютубе
Ардуино - это отладочная плата с микроконтроллером AVR, преобразователем USB-UART (для загрузки программы) и парой конденсаторов. Китайцы могут поставить любую микросхему USB-UART, но от этого зависит только какие драйвера ставить.
Ни разу не держал в руках ардуину.
Еще стабилизаторы питания могут отличаться. В версиях подороже они даже мощнее чем на оригинале.
Я про это и спрашивал. Дровишки не проблема? Якобы при подключении китайщины ее комп не видит вообще и надо где-то копошиться?
Прставить водителя одним кликом, все.
Эзернет шилд по гайдам/i2c пердуинами.
>intel edison - аналог intel galileo (это очень похожие на arduino платы, но с выходом в интернет)
Точно, двухъядерный Intel Atom очень похож на восьмибитный микроконтроллер. Это похоже на raspberry pi. На этой плате полноценный линукс, а значит можно писать практически на любом языке программирования.
>на ардуиновском Си
Ардуиновские библиотеки никак не могут использовать даже небольшую часть возможностей линукса из-за своей специфики. Советую писать на питоне, при этом программу сможешь сначала отлаживать на ПК.
Прогать на Си - это условие конкурса. Я в курсе, что мощей там в избытке
Так это зависит от твоих нужд
Ну и ты же понимаешь, что платы - это платы, а для контроллеров нужно будет ещё обвязку мутить? Да и про программатор для них ты не сказал ничего.
Обвязки у тюнь же минимум, не? Кварц не обязателен.
Шить буду либо через usbasp, либо uno r3 as isp. Т.е. говнокодить буду через ардуину. Есть куча простых нужд типа мониторинга ацп и дерганья релешками, а под стм ничего не могу придумать, чтобы использовать его производительность по уму. Алсо, есть еспшки - они куда универсальнее: и быстры, и вифи встроен.
>есть еспшки - они куда универсальнее: и быстры, и вифи встроен.
Прошлый век, после появление RTL8711
Тогда освой bitbanging, заведи буфер и перерисовывай только те места где изменилось. Немного побыстрей будет, но все равно медленно.
Если не из Китая заказал, то правильно.
А если из Китая, то 8 из 10 могут быть нерабочими и заебешься еще продавцу доказывать это.
Я нюфаг и это моя вторая ардуина.
теперь понятно для кого это клепают
2. Как управлять GSM модулем и какой модуль взять, что бы не ебаться с пайкой, в амперке что-то дохуя дорого для меня брать за 3 штуки gsm модуль
Любую пару передатчик-приемник покупаешь, гуглишь, запускаешь.
С GSM немного сложнее.
Китайцы продают три основные вида модулей GSM с UART - M590, SIM800L (и 900L, отличия невелики) и A6.
M590 бэушные почти все.
SIM800L - две трети.
A6 - почти все новые.
Надежность работы соответствует бэушности.
Хочу получать температуру и передавать по wi-fi на андроид.
Андроид работает круглосуточно, температуру хочу передавать раз в час.
Какие подводные камни? Моих запчастей хватит?
>А если из Китая, то 8 из 10 могут быть нерабочими и заебешься еще продавцу доказывать это.
Что ж, при получении постараюсь как можно скорее проверить.
Сразу напаяю их на дип-переходники и буду тестить на бредборде, прошивая blink.
10шт = 160р. Я отпишусь когда получу и протестирую, поглядим каково оно. Очень интересно, с учетом того что на маузере оптовая цена от 1000шт - 1.73$/шт.
Не помню про ATTiny (так и не понял в чем смысл этой линейки), но дофига PIC16 - в том числе с охрененно развесистой периферией - попадают в "дешевле доллара" на Digikey, причем в DIP-корпусах, если брать десяток хотя бы.
Разница, конечно, всё равно есть, но ебля может не ограничиться тем что оно просто сразу не заработает, а искать "плавающий бит" - удовольствие пиздец.
>>278651
Заказал отсюда: https://www.aliexpress.com/item/Free-Shipping-10PCS-ATTINY13A-SSU-ATTINY13A-13-ATTINY13-13A-ATTINY-13A-20MHZ-8PDIP-Best-quality/32522362549.html
Отзывов много, отзывы вроде хорошие, народ пишет что оно работает. Как бы то ни было, на кону всего лишь 160р, а не 24$ как у того чувака.
>искать "плавающий бит" - удовольствие пиздец.
Я тут подумал, блинк-блинком, а как проверить хотя бы всю память? Проверить флеш вроде просто: в ней будет программа, копипастом нахерачить одно и то же (тот же блинк, мб в чуть разных вариациях) и проверить что выполнение не зависает. EEPROM проверить тоже просто: записать-прочитать разные паттерны. А какой алгоритм для теста RAM лучше применить?
Мне нужно сохранять значения барометра раз в час, всего часов 10, после этого первое стирается и добавляется 11 и так далее.
Как это сделать на Ардуино? Чтобы установка получилась мобильной, без привязки к компу.
Вот такую минимальную обвзку нашел, а есть уже разведенные платы под разные корпуса и с выведенными пинами?
я не совсем понял, думал типа вставляешь юсб передатчик в порт, открываешь программу и пишешь там в него с пеки каким-нибудь питухон нули с единицами, а ардуина это все принимает. Просто смотрю, все передатчики 433 с проводами, т.е. мне их как-то надо к пеке прихуевертить, пусть даже через rs 232 и подавать туда биты, как я в 485 кидаю. Может я совсем дурак, но как-то так я передатчик по 433 представлял.
Классная вещь, спасибо. А есть ли еще что-нибудь для управления 7сегментными индикаторами, чтобы без миллиона проводов на разряд?
Китайцы освоили http://www.siti.com.tw/product/spec/LED/ST2225A.pdf
До четырех индикаторов сразу, и яркость регулирует.
Да, если важнее всего ultra-low потребление мощности, тогда выкидывай атмеловство и смотри в сторону NXP серии S08, среди них есть МК, умеющие много энергосберегайных гитик с LCD, на одной часовой батарейке век сможет проработать, даже периодически передатчик маломощный включая.
http://www.nxp.com/products/microcontrollers-and-processors/more-processors/8-16-bit-mcus/8-bit-s08/8-bit-segment-lcd-ll-mcus:S08LL и вокруг.
Компонентов хватит, мозгов - увидим.
Они вообще прикольные очень. У них еще совсем есть младшая линейка - RS08, те совсем забавные.
Мне кажется что они крайне недооценены и малоизвестны, а достоинств у них разных много.
Ну сейчас-то главное достоинство - чтоб хуяк-хуяк, поэтому своя (мотороловская, но кто ее помнит и умеет) система команд, и на Си их программировать не очень эффективно - это главный минус.
И о энергопотреблению они, наверное, абсолютные чемпионы - причем не только по даташиту, а в реальном применении.
Т.е. кидаться в него командами напрямую, а не через библиотеку? Спасибо, я попробую
А значения-то как должны сохраняться и как выводиться без привязки к компу-то? Можно по-разному, но как у тебя задумано?
Нет, почему, можно и через библиотеку. Вопрос в том какую библиотеку. Я встречал умеющие в bitbanging этого контроллера, но насчет частичной перерисовки - это уже к графической библиотеке, которую ты используешь, умеет ли она.
У него задумано что все кроме последних 10 значений его не ипут. Он готов открыть для себя восхитительный новый мир ring buffer-ов.
Спасибо, я уже погуглил. Впаял туда 1n4007 - прошивка через усб не работает. У меня ещё есть шоттки 1N5819 и 1N5822. Какой припаять туда?
Оригинал - https://www.onsemi.com/pub/Collateral/MBR0520LT1-D.PDF
https://www.chipdip.ru/product/1n5819pbf
https://www.chipdip.ru/product/1n5822
ну так непонятно, куда он эти 10 значений собрался сохранять, и что с ними делать дальше (хранить где записал/вывести на экран/передать по сети/etc.)
Как же я проиграл с этой хуйни, когда впервые увидел ее в сериале, особенно с пачки резисторов.
Он тоже хочет стать хокаге?
Никогда не знаешь, в какой момент может понадобиться пучок резисторов.
Пердуина тут вообще лишняя, ну разве что как программатор для esp.
Сериал "Легион". По сюжету это нейроинтерфейс, который блокирует паразита в психике ГГ.
есть уже, питает, лед светится, нужно теперь транзистор в цепь воткнуть, только какой подойдет?
>>279107
IRF740 или далее. Стоят 5 рублей, так что не надо кококо про то что под слишком большой ток и нинужны. К тому же продаются везде ибо очень востребованы.
А теперь поясните посанчики. Хочу вкотиться в погромирование МК и помигать светодиодами. Какую пердулинку лучше брать и есть ли годные аналоги пердулинок на других языках и/или МК (желательно не за сотни нефти)
Самому поять и пердолиться с погроматорами решительно лень, пердулинка нужна в основном для развлечений (ведь в душе я еще ребенок)
А может леонардо? А может омперку лучше? а может... а может?
Нутыпони, очень большой выбор и глаза разбегаются, а поскольку четкой цели нет, то и выбирать по задачам не могу.
Все это однохуйственные вещи, чип один - Atmega328. Можешь купить поменьше и попроще, например mini, но тогда будешь ебаться как зашить(в уно встроен прошивальщик), можешь купить побольше, мегу, но тебе куча пинов и больше памяти не нужны чтобы моргаться(в уно их достаточно). В общем UNO это оптимальный вариант для первой ардуины. Потом когда с ней поиграешь сам поймешь что тебе нужно.
САП, анон.
Короче есть вот такой USB-TTL переходник https://www.aliexpress.com/item/PL2303-TA-USB-TTL-RS232-Convert-Serial-Cable-PL2303TA-Compatible-with-Win-XP-VISTA-7-8/2005093077.html
С ним все в порядке, проверен, работает.
Алзо есть вот такой читатель-писатель RFID (предположительно для Arduino, тому сюда и зашел) https://www.aliexpress.com/item/125KHz-3-3-5V-RFID-Non-Touch-Reader-Writer-Module-Uart-Serial-TTL-Output-ID-Card/32739967570.html Без опознавательных знаков.
Втыкаю все это добро в комп под вин 10. При поднесении RFID метки в Putty приходит такой поток байт как на пикче.
И все. Дальше я так понимаю надо на RFID переходник слать какие то комманды, на чтение ли на запись, но какие? На самой плате маркировки нет, на чипе тож ничего не видно, а со стороны компа я вижу только USB-TTL адаптер в виде ком-порта.
Меня несколько утешает что микрух-преоброзователей TTL-RFID едва ли сильно много, штук 5, от силы 10, и тупо перебором можно найти нужные.
Вот что и спрашиваю кто может скинуть коды для работы с RFID преобразователями? Ну типа там 33h - считать номер XXh - записать.
Альзо, есть какая программа которая может последовательно гнать цифры от 0 до 65555 в ком-порт и читать ответ? Руками ж заебузь набирать.
С меня как обычно.
Ежли что умею в Паскаль, Си размовляю. Хотелось бы что б вот прям щас взяло и заработало.
IRL540N
У него относительно небольшая емкость затвора и низкое сопротивление в открытом состоянии при 5 вольтах на затворе.
Так что да, на затвор 5 вольт давай.
Частоту ШИМа бери наиболее низкую, при которой всё еще не видно мерцания.
http://www.infineon.com/dgdl/irl540n.pdf?fileId=5546d462533600a40153565fbd752565
моторы, в магазе купи самых маленьких алюминиевых уголков и винты
>реле
Говорят при их срабатывании происходит сильная искра и они быстро выходят из строя/выгорают/залипают.
Я себе тоже 10 купил, теперь думаю нахуя.
Говорят что хуй доят. Искра будет только если превышать написанную на реле величину нагрузки.
Ньюфагу надо обязательно брать релешки, потому что со всеми остальными электронными ключами подводных камней намного больше.
>Искра будет только если превышать написанную на реле величину нагрузки.
Perduinshik, prekrati.
Мосфеты советуют с Vds = 400V, когда по факту надо на 50 В.
Релюшки не искрят (они всегда искрят).
без обвеса и магнита, либо вся хуйня под 10 и больше вольт, а у меня на моем пердуине лишь 5, что делать, расскажите, нихуя не пойму.
Геркон подключать к ардуине так: один конец к 5в, второй в любой пин. Затем digitalRead(pin); и там будет 1 или 0, в зависимости от наличия магнитного поля и какой геркон.
я туповат, но не шибко, вот смотри хочу купить ебаный геркон, захожу на
https://www.chipdip.ru/catalog-show/reed-switch
а тут везде "коммутируемое" напряжение, что это за зверь? Вообще я уже помигал диодом, подключил кнопку, избавился от дребезга, а вот с ебаным герконом разобраться не могу, планирую его на дверь приебашить, мне еще магнит надо туда цеплять и как правильно, гнать по цепи ток и следить что бы уровень не падал или наоборот, ожидать пока сигнал появится?
Аноны, начал вкатываться в программирование контроллеров. Сейчас пытаюсь на atmega1280 сделать ADC микрофона (max4466), чтобы в дальнейшем замутить ффт сигнала. Так вот, на выходе из adc постоянно слишком большие значения - на голос вообще не реагирурет, только на стук по самому майку. С чем это может быть связано? Сам он рабочий, проверял на осциллографе. На нём и на голос реагирует и вообще все замечательно.
> а тут везде "коммутируемое" напряжение, что это за зверь?
Максимальное напряжение, которое не прбьет геркон в разомкнутом состоянии, забей короче, вряд ли для тебя это критично
> мне еще магнит надо туда цеплять и как правильно, гнать по цепи ток и следить что бы уровень не падал или наоборот, ожидать пока сигнал появится?
Чиво блядь? Объясни по-человечески
Короче, можешь в первом приближении считать геркон тупо выключателем, тумблером. Но который включается не от твоего пальца, а от магнита. Он и внутри так устроен. Там два металлических контакта, когда подносишь магнит, один притягивается к другому и цепь замыкается. Всё. Вот представь себе обычный клавишный выключатель, что ты с ним будешь делать?
как правильно делать, что бы геркон работал на замыкание или размыкание?
Объясни пожалуйста, про "пробьет" я всю жизнь думал там механический контакт, как его может пробить, электронная эмиссия?
Герконы бывают на размыкание и на замыкание от магнита.
Пробивает его от того что в разомкнутом состоянии возникае искра между контактами.
> от того что в разомкнутом состоянии возникае искра между контактами.
Ваще то искра дуга возникает во время размыкания, если ты только не киловольтные нагрузки коммутируешь.
Ну да. Ты же к ардуине его подключать будешь? Лучше возьми нормально разомкнутый.
Опять ардуинщик обосрался.
Геркон между землей и портом.
Порт в режиме PULLUP:
pinMode(pin, INPUT); // set pin to input
digitalWrite(pin, HIGH); // turn on pullup resistors
Нельзя допускать неопределенного состояния (висящего в воздухе порта, настроенного на вход) на портах.
а че там может быть? Если к нему ток никто не подводит, я в общем слышал про эту хуйню, неопределенное состояние и т.д., но сколько там навести могут и главное откуда?
>я в общем слышал про эту хуйню, неопределенное состояние
Ну охуеть теперь, поставь висячий пин в воздухе на вход и транслируй его состояние, например, на другой выход, светодиод там и посмотришь за одно что там происходит.
> а че там может быть?
Всё, что угодно, это ж неопределённое состояние
И нахуй тебе нужен такой вход, при чтении которого получаешь 0 и 1 в рандомном порядке? То есть, когда у тебя геркон замкнут на землю, ты получаешь ноль. Когда разомкнут, ты неопределённо получаешь 0 или 1, как ты узнаешь, что с твоей дверью? Если только как генератор случайных чисел он будет ниочень использовать?
Да похуй, делай как хочешь.
Есть экран от нокии 5110 на синем шилде и ардуина мега 2560. Так вот экран работает только если Vcc НЕ висит на питании. Это вообще как, почему?
И пытался подключить его к NodeMCU. Ни в какую не хочет с одним DHT22 и лайтсенсором на spi. Один раз выдал мусор и всё. Остальные раз пустота, как ни пытался.
Содомирую этого двачуна двачую этого содомита.
Нанка + хлебная доска на 830 сральных дырок будет оптимальным выбором.
Напомнило. В каком-то советском фантастическом фильме, как мне рассказали, фигурировала «диадема» с огромным КПЕ среди прочих деталей, КПК-2 или КПК-3, судя по описанию. Жаль, название ленты не вспомнили.
как перевести эту прогу для ардуины с русского на английский? в настройках нет, в гугле не нашел, а работать так дальше - я ее скорее удалю и разобью ардуину об стену, так бесит находить всю инфу на английском и потом искать как эти долбоебы переводчики это записали
поставил генуино, эта скотина сама без вопросов поставилась на русском языке
как исправить на нормальный язык?
смотрел жопой, все там есть
1. Почему при подключении к компу плата сразу начинает работать, а если ее воткнуть в зарядку от телефона то программа не стартует пока не нажмешь ресет?
2. Подключил кнопку на длинном проводе, когда касаюсь провода в изоляции бывают ложные срабатывания кнопки, так и должно быть?
3. Какие меры предосторожности предпринять чтобы не попалить раньше времени мою ардуину? Что будет если например заземлить пин и подать на него хай?
Вопрос вот в чем можноли реализовать вывод инфы через ЮСБ непосредственно на машину?
https://www.crowdsupply.com/sifive/hifive1/
В комплекте с принтером шла ардуинка китайская (такая поделка Меги 2560 и еще какого-то ноунейма). Ну я и по дурости решил обновить софт через батник, отправленный продавцом. Ничерта, попробовал через IDE - тоже самое, то есть проблема не в плате, как я понял. Сама хрень, что вылезает:
avrdude_stk500v2_ReceiveMessage()timeout
И так раз пять, после чего предлагают присесть на бутылку. Что делать?
Как понял - данные не передаются на саму плату, хотя питание идет. Хотя менял несколько кабелей. Пробовал нажимать на кнопку сброса раз 50 - тоже не помогает.
Хорошие вещи не забываю, поэтому если поможете - с меня пара шекелей на тот же курви или ЯД
Добавлю к тому хую - а плата то та выбрана, определяется ли она шиндрусом?
Я хз вообще, где это даже смотреть. Фишка в том, что это галимый Китай. Галимейший. Zonestar Motherboard, которая была без дров и прочего.
Реально ли найти драйвера на такую дичь или придется продолжать сосать не свою и не лапу?
Еще добавлю, мол, есть два ПК и на обоих ничего не вышло. Windows 10 + RT, стоит ли искать семерку, или уже бесполезно?
> Резистор есть?
Да все как в книжках. Охерел от цен в местных магазах, нужен датчик температуры и часы. Придется ждать китаезов месяц.
Хз, я вообще дизайнер, лол
Могу сказать, что порт отображается корректно в винде во вкладке КОМ'ов
Точно он? Я раз дрочил ком порт до одури, пока не допер, что это модем в ноуте, а не ардуина. Он мне еще на ат команды отвечал.
Можно ли запилить спектрограму на монитор ПК?
Вопрос Ардудрочеры. насколько ардуино стабилен в плане непрерывной работы 24/7.? Если опыт применения в более серьезных приложениях чем мигание светодиодом.
Это смотря что ардуиной называть. Срок службы микроконтроллера определяется в основном сроком хранения данных в флеш-памяти (гарантируется около 20 лет). Также ограничен ресурс EEPROM.
Сформулирую по другому. На сколько надежно некое устройство на базе Ардуино, выполняющие функции например ПЛК или "Умного" реле. Под Ардуино имею ввиду текушие "наборы")
> ардуино стабилен в плане непрерывной работы 24/7.?
Настолько, насколько стабильна Atmega 328 в плане такой работы. У меня уже три месяца включает/выключает подсветку, измеряет влажность и температуру в рассаднике.
> Ардуино
> порог вхождения
Ну, думаю с класса пятого, гомо эректус, уже может самостоятельно пиздить куски чужих скетчей и ваять свою первую мигалку.
Вопрос ведь не о мигалке ;)
У меня контроллер тёплого пола на ATMega8 три года проработал в условиях +20 - +80, и работает дальше.
На Arduino UNO нужно понизить частоту PWM. Я так понимаю это делается только делением частоты таймеров, так? Или есть другие способы?
Нашел вот такую табличку - пик прикриплейтед.
адрес на нее https://arduino-info.wikispaces.com/Arduino-PWM-Frequency
Можно ли ее использовать? В какую часть кода вставлять код, в setup?
Спасибо за помощь.
>Или есть другие способы
Ага. Можешь фьюзы для деления частоты на 8 прошить, или кварц перепаять.
Только нужен программатор. И ардуино иде, скорее всего, перестанет дружить с твоей атмегой.
А так да, таймеры.
>>281433
Если будешь менять фьюзы/кварц и не прошьёшь нужный бутлоадер, то да. Но ты этого делать не будешь и не делай.
В ардуино сначала запускается бутлоадер, который шьёт твой код, а потом уже твой код. Пока бутлоадер не сломаешь, или фьюзы, то всё нормально будет.
Сломать фьюзы/бутлоадер можно только программатором. Когда ты подключаешься по USB к ардуине, то ты общаешься через COM порт с бутлоадером. Его невозможно так сломать и тем более фьюзы.
В общем пробуй любой код, не бойся. Ардуина защищена от дурака. Софтварно по крайней мере.
> ты общаешься через COM порт
Хм, а каким хуем я шью фьюзы на Атмеге через FTDI? Такой же СОМ-порт, только общаешься не через пердуино-идэ, а через какой-нибудь USBasp
Желательно чтоб был в продаже в ДС, ждать али нету мочи.
Я сделал на основе ATMega328 в пульт и ATMega8 в приёмник. Работает всё на 2,4ГГц с помощью nRF24L01+
>с помощью nRF24L01+
Я думал это библиотека какая-то крутая. А он взял модуль купил ценой в атмегу.
Тогда уж лучше ESP8266 взять. Намного быстрее и больше памяти, чем в атмегах. Но есть проблема - электро движки создают помехи для вайфая.
Видел где-то на ютубе как пытались вайфайный квадрокоптер сделать, но при старте его движки глушили сигнал.
Ещё ESP8266 позволяет слать сырые данные. Можно непрерывно слать пакеты с состоянием всех двигателей без всяких подключений к вайфаям. Вроде многие игрушки так и работают.
>It turns out that Espressif has written a wifi_send_pkt_freedom() function that just sends out whatever packet you’d like to the network.
Где-то я видел простой пример рассылки beam (или как их там) пакетов, которые засоряют эфир. Открываешь на телефоне список вайфаев, а их там несколько тысяч.
А, вот же он. Для Arduino IDE.
https://github.com/kripthor/WiFiBeaconJam/blob/master/WiFiBeaconJam.ino
Да, сейчас весь ютуб завален видео типа "глушилка вайфая из esp8266". Доиграются блеять, что модуль запретят для импорта даже в Гондурасе.
>>281733
>>281732
Ебонашки, чего вы этой пукалкой заглушите? Свой роутер, приклеенный изолентой к потолку? Чтобы хоть как-то значимо "заглушить" хотя бы соседей, их роутер должен быть не далее чем сразу за стеной, по соседству с есп в паре метров.
Вы просто дуринщики. Я в детстве глушил радио шансон соседям от своего укв передатчика, у которого мощность была в 20 раз мощнее этой вашей есп. Так вот, хватало ровно на соседей. Далее уже пробивался сигнал шансона, а через 15-20м и вовсе можно нормально слушать шансон.
Это я про условия зданий, а не про прямую видимость.
Да нихуя, по-прежнему не работает, а завтра его использовать надо
Ну да, а потом 1000м дальности по прямой видимости получил. ESP тянет 1000м дальности? С ESP ты можешь сам написать свой формат пересылаемых данных и слать его каждые 9мс?
одинарные*
Хуй соси. На уровне протокола вайфая рассылаются пакеты от имени точки/клиента на разрыв коннекта и у тебя телефон/ноут не может подключиться к точке. Подключается и сразу отключается.
Гугли таблицу ASCII. Ибо в первом случае ты отправляешь 00001001, а во втором 00110101. Символы цифр начинаются с 48 позиции равной "0".
Я понимаю что тут полумертвый раковник, но все же.
Кто знает, сколько максимальных одновременных коннектов может держать ESP 8266 в режиме акцесс поинта? Или, даже лучше, другой вопрос - кто-нибудь занимался построением меш-сетей на этом вайфаеконтроллере?
А я делал с блютус модулем и каким то приложением.
Собрал выключатель света по такому принципу https://geektimes.ru/post/274869/
Тестово поместил в техническое помещение. При скачах напряжения выключается. Схемотехнику только начинаю осваивать, но подозреваю что нужен конденсатор который должен сглаживать скачки. Есть готовые стабилизаторы в Китае для моей приблуды? Или надо всё самому паять на коленке?
Не делают ничего такого на аврах. Надёжность слишком низка прост. Ты видел когда-то автомобильный блок управления на аврке? На пикушке? То то же.
Если есть возможность заводить аварийную логику на железе - то можно и ардуину ставить, но если нет - никакой сторожевой таймер тебя не спасёт.
К слову,чинил недавно студийную вспышку, где ребята инженеры поставили аврку в качестве управляющего контроллера. Пр абсолютно исправном по эта сучка не стартовала просто так. Замена проблему решила.
ЕСПшке жизненно необходим кондер по питанию на 1000мкф или больше, вырубается она из-за этого, а не из-за скачков напруги сетевой.
> Не делают ничего такого на аврах.
Есть еще платка старинного промкомпьютера на GeodeMX с РС/104, но я совсем не могу в системное погроммирование. Наверное так и придется до пенсии вручную все крутить как на подводной лодке.
Дели всё на субмодули, чтобы в случае выхода из строя, выходило по кускам. Дублируй системы. Любые микроконтроллеры глючат.
Исключай опасные ситуации. Разбей систему на блоки, чтобы все узлы не зависили от аврки.
>В случае отказа все это чревато выбросами кипятка
Не надо так. Придумай что-нибудь, чтоб в случае отказа ничего такого не происходило.
[CODE]#include <SPI.h>
#include <WiFi.h>
char ssid[] = "admin"; // your network SSID (name)
char pass[] = "12345"; // your network password
int status = WL_IDLE_STATUS;
char server[] = "189.225.1990.22";
WiFiClient client;
void setup() {
Serial.begin(115200);
while (!Serial) {
;
}
if (WiFi.status() == WL_NO_SHIELD) {
Serial.println("WiFi shield not present");
while (true);
}
while (status != WL_CONNECTED) {
Serial.print("Attempting to connect to SSID: ");
Serial.println(ssid);
status = WiFi.begin(ssid, pass);
delay(10000);
}
Serial.println("Connected to wifi");
printWifiStatus();
Serial.println("\nStarting connection to server...");
if (client.connect(server, 10000)) {
Serial.println("connected to server");
client.println("1");
}
}
void loop() {
// if there are incoming bytes available
// from the server, read them and print them:
while (client.available()) {
char c = client.read();
Serial.write(c);
}
// if the server's disconnected, stop the client:
if (!client.connected()) {
Serial.println();
Serial.println("disconnecting from server.");
client.stop();
// do nothing forevermore:
while (true);
}
}
}
[/CODE]
[CODE]#include <SPI.h>
#include <WiFi.h>
char ssid[] = "admin"; // your network SSID (name)
char pass[] = "12345"; // your network password
int status = WL_IDLE_STATUS;
char server[] = "189.225.1990.22";
WiFiClient client;
void setup() {
Serial.begin(115200);
while (!Serial) {
;
}
if (WiFi.status() == WL_NO_SHIELD) {
Serial.println("WiFi shield not present");
while (true);
}
while (status != WL_CONNECTED) {
Serial.print("Attempting to connect to SSID: ");
Serial.println(ssid);
status = WiFi.begin(ssid, pass);
delay(10000);
}
Serial.println("Connected to wifi");
printWifiStatus();
Serial.println("\nStarting connection to server...");
if (client.connect(server, 10000)) {
Serial.println("connected to server");
client.println("1");
}
}
void loop() {
// if there are incoming bytes available
// from the server, read them and print them:
while (client.available()) {
char c = client.read();
Serial.write(c);
}
// if the server's disconnected, stop the client:
if (!client.connected()) {
Serial.println();
Serial.println("disconnecting from server.");
client.stop();
// do nothing forevermore:
while (true);
}
}
}
[/CODE]
На связи ардуинщик-нуб.
Объясните, почему нельзя делать как на цифре "2"?
мне это кажется абсолютно логичным, но во всех схемам всегда изображены резисторы через диоды как на "1".
Так делать нельзя, потому что яркость отдельных светодиодов будет зависеть от количества включенных светодиодов.
{
"mode" : "ap_sta",
"host" : "ESP8266",
"sta_ssid" : "tenda_wifi",
"sta_pwd" : "123123123",
"sta_ip" : "192.168.0.115",
"sta_mask" : "255.255.255.0",
"sta_gate" : "192.168.0.1",
"sta_mac" : "50-8F-24-60-2B-37",
"ap_ssid" : "esp8266_wifi",
"ap_pwd" : "123123123",
"ap_ip" : "192.168.1.1",
"ap_mask" : "255.255.255.0",
"ap_mac" : "76-8A-8A-1C-03-9C"
}
Вкатываюсь в AVR Assembly language (по курсу Дихальта), и сразу непонятное.
(0) В дефайне (пик0) вижу, что spl=0x3d, sph=0x3e.
Пишу в эти spl и sph свои CCCD, а в разделе memory меняются значения ячеек 0x5d 0x5e.
Чому?
(1) В коде (пик1) записываю в r16 r17 сс и cd соответственно (записались, вижу), потом пишу их в spl и sph, а в них 0xCC и 0x0D.
Чому?
Тому що RAMEND=0x08FF, и оно автоматом обрезает значение, превышающее макс.памяти? Кто именно обрезает - компилятор или эмулятор?
>Пишу в эти spl и sph свои CCCD, а в разделе memory меняются значения ячеек 0x5d 0x5e.
Без понятия, никогда атмег в руках не держал.
>Тому що RAMEND=0x08FF, и оно автоматом обрезает значение, превышающее макс.памяти?
Скорее всего старшие разряды регистра SPH просто физически отсутствуют.
>Кто именно обрезает - компилятор или эмулятор?
Ну так посмотри как эти инструкции скомпилировались.
По вопросу (0) стало понятнее, надо было в https://en.wikipedia.org/wiki/Atmel_AVR_instruction_set заглянуть лол.
>>282233
Спасибо за ответ, Анон.
>Ну так посмотри как эти инструкции скомпилировались.
Смотреть в секции "prog FLASH" по адресу "Program Counter" или куда-то в другое место? В disassembly? Так я и так на асме пишу же. Или мой асм в какой-то другой асм компилируется?
Что именно там смотреть? Нагуглить меппинг асм-команд в машинные коды?
>Смотреть в секции "prog FLASH" по адресу "Program Counter"
Да. Если хочешь разобраться что делает компилятор, то можешь посмотреть.
>Нагуглить меппинг асм-команд в машинные коды?
Это называется таблицей опкодов. По этой таблице несложно повторить все действия компилятора вручную на бумажке.
Я в глаза долблюсь, оказывается.
Про эти секции в начале главы о памяти написано. Ну и datasheet полезнее статейки в википедии хехе
Через ардуино, она у меня все равно как придаток к STM-ке, для которой все на Си написано. В ардуино для ESP все готовое с кучей примеров и большим комьюнити, супер производительность не нужна (только данные отгружать по HTTP и общаться с STM по UART). Да и чистом Си пердолиться с кривыми еспрессиф либами в богомерзком еклипсе как-то совсем не тянет.
У меня 4.19 стоит сейчас, создал в нем 10-12 примеров работы с разными датчиками-передатчиками и написал 2 полноценных проекта для рабочих девайсов, которыми люди уже пользуются месяца 3. Более ранние (до 4.10 или около того) действительно были с неприятными багами, 4.20 был с мелким багом, его пофиксили в текущей 4.20.1. Я в пираченом 5м кейле педалю, мне норм.
Разумеется можно, это ж атмеловское поделие, пердуина просто прикрутила свой бутлоадер и шьет по uart. Правда тебе придется купить программатор, который работает с последней Atmel Studio, но поверь оно того стоит.
> тебе придется купить программатор,
Пердуина понимает Си и без плясок с бубном.
https://habrahabr.ru/post/247663/
>плясок с бубном
То что ты кинул и есть пляски с бубном, в то время как компания, выпускающая аврки сделала студию и программатор для быстрой и удобной разработки с использованием популярных сишных либ, оффициальных примеров, отладкой на кристале и много чем еще, так нет люди хотят жрать говно.
Просто если ты меряешь метео-показания, имело смысл и саму работу с датчиками на этой же ЕСП запилить. В ардуино среде есть библиотеки под все популярные датчики же.
> А что там щас управляет котлом?
Мои кривые руки, а когда уезжаю - еще более кривые жены. Котел твердотопливный, так что взрывод до разрушения дома не будет, а вот закипеть может.
На днищесраном восмибитном C509, который на 8051 основан. Потому что даже он лучше пичков и авээрок с хуярмами, потмоу что автомотив и доказал свою надежность.
>Эбу на авр - а они есть.
Где? Если ты про поделие сумрачного украинского гения в лице SECU3? Или ты про vems? Ни то ни другое ЭБУ не является а являются поделками перестудентов-недобарыг. У Эбу должно быть написано "бош" на корпусе.
Это будет отдельный модуль для тепличного контроллера. Во-первых я не уверен в надежности ESP в плане зависаний, перезагрузок и прочего, да и АЦП там всего один, а мне надо как минимум три, во-вторых на ESP нельзя залочить прошивку (можно на ESP32, но тогда уж стоит взять подороже и понадежнее STM микруху с вайфаем).
многолапая мега с рабочим циклом и вотчдогом + связь какимугодноспособом? esp зависнет и кроме как по питанию ее не очухаешь, в этом плане чем проще тем лучше
Зачем мне мега, если у меня есть 48-ногая STM32F030C8 на 48 Мгц с кучей таймеров, большей памятью, DMA и двумя вотчдогами, при этом стоящая дешевле меги. Поэтому я и делаю ESP отдельным модулем, можно либо вообще без него, либо с ним и он не будет влиять на работу основного контроллера.
ну делай на стм, разницы никакой для единичного экземпляра. А для теплицы мощи с избытком.
Есть девайс с вмонтированной ардуино нано.
Написал новый скетч для него и залил через юсб, но обнаружил не ту плату и по дурости вытянул провод в момент заливки скетча в плату.
Теперь с правильно выбранной платой скетч не загружается, висит на загрузке и все
Соответственно девайс не работает
Загрузчик слетел?
Ну и довен же я
https://github.com/ashabelnikov/secu3app/tree/master/sources
О пацаны я исходники этого поделия нашел, го срач!!!!
Собственно ведет себя как живая, при включении светодиоды моргают, при заливке тоже, но до конца не заливается
>я не уверен в надежности ESP в плане зависаний, перезагрузок и прочего
Вообще она весьма высокая, моя первая ЕСПшка на даче работает уже почти год по 50 дней аптайма (а потом всегда перезагружается из-за переполнения переменных в моем говнокоде), и в ней всегда работает неотключаемый вотчдог.
>АЦП там всего один
Можно транзисторами замыкать на него разные входные каналы, например.
>на ESP нельзя залочить прошивку
Кто к тебе в теплицу залезает пиздить прошивки?
>FTDI
Это которая CH340?
Монитор порта так то тоже не работает.
Если перезалив бутлоадера не поможет - таки поменяю
https://ru.aliexpress.com/item/Kamoer-metering-pump-dosing-pump-for-water-milk/2045297039.html
>залезает пиздить прошивки?
Вангую, он собрался заместить кому то серийную автоматику за копейки, ему сказали сделай опытный образец, а тут то он и задергался, что наебуть.
>Вообще она весьма высокая
В чем разрабатывал, в еспрессиф сдк дроченом или ардуино иде точеном?
> С чего можно начать исследовать
Бля, там настолько сложная схема, десятислойная печатка и QFN-компоненты, что только суперспецы берутся за ремонт этой божественной платы.
Засунуть в двойную жестяную коробку якобы для термостатирования и по сигналу о вскрытии внешней оболочки перезаписывать содержимое контроллера рандомной хуетой.
> суперспец
Я не говорил, что я суперспец. Я говорю, что не всем дано постичь суть схемы Ардуины из трех деталей, точнее даже никому.
Хуле ты воспламенился? Мозгов не хватает пойти на ардуино.цц, найти схему и посмотреть, что может сдохнуть при замыкании питалова на землю? Стабилизатор проверил? Напруги все в норме?
Братиш, здесь, в главпетушатнике всея радача, тебе совсем не к лицу высокомерие. Проще будь. Вот соберёшь свою пушку Тесла, тогда и повыпендриваешься.
Зафигачил нормальный график, прикрутил сначала WebSocket'ы, потом поменял их на EventSource'ы. Убрал все зависания и вылеты (пришлось подправить немного говнокода в этих петушиных либах под ардуино).
Что скажешь в целом про ЕСП как железячную платформу? Доверил бы ей не только сбор данных, но и управление обогревом/кондиционированием/насосами, охранные системы, контроль доступа?
Даже хз, я б лучше все управление сделал на STM32, в нем я точно уверен, а ESP прикрутил к нему для сбора данных и всего остального. Но вроде как ESP нормально справляется с зависаниями с помощью вотчдога. Я менее уверен в говеных либах для ардуино, где встречаются while циклы в чтении данных с датчика по I2C, это просто пиздец, кто такое написал там. Ну и вообще у ESP довольно скудный набор периферии: ацп всего 10 бит, I2C только в режиме мастера работает и то в блокирующем режиме, UART сыпет мусор при старте модуля, таймеров мало. Есть правда ESP-14 cо слабеньким STM8 на борту, но с ним вроде никто не работает в ардуино + насколько я помню там выведены ноги только с STM. Кароч ESP + МК по I2C лучший вариант как по мне в плане надежности и производительности.
проиграл с мамкиного дискретизатора
Уже приехала отладочная плата с ним, причем повезло, что ревизия 1, а не 0. Но я пока еще не начал ковырять его, надо почитать книжку колбана и вникнуть в некоторые фишки RTOS по работе с 2 ядрами.
Нет, разделять нагрузку надо параллельно, а не последовательно. И транзисторы должны быть строго из одной партии, чтобы открыввлись ровно одновременно.
Сап, ананасы! Поясните за аналоговые порты Arduino. Почему они выдают рандомные значения от 0 до 1023? Работают, как антенны?
Только начала изучать эту приблуду и при сборе простенького тестера батареек при разомкнутом состоянии выдаёт рандомную ебалу. Если подключить бтарейку, то показывает нормальные значения.
>начала
Это не сработает, жирный. А по делу - да, входы АЦП висят в воздухе и собирают на себя наводки, для их режекта соедини его через резистор на десятки ом с землёй.
Лох бы взял голую esp, сэкономив 80 рублей на комфорте.
И да, считать научись.
мимосостоятельныйбаер
А USB-TTL ещё, а?
Да и не все работают, я сначала один купил, он не загружал прошивку. Потом нагуглил, что он сильно китайский и не работает с ESP8266.
Лучше уж сразу рабочую плату.
USB TTL там встроенный - либо ch34, либо cp2102.
Так-то и модуль может попасться нерабочий, а 80 рублей - не большая цена, чтоб не возиться с внешним usb ttl и подключением пинов.
Через spi конечно. Ты хочешь держать прошивки для нее на sd? Тогда придется переделывать загрузчик - это не для новичков развлечение.
Ага, загрузчик написан на ассемблере?
> из пердуины собрать программатор
Можно но не нужно. Только FPGA на 50к вентилей, только хордкор
Подробней расскажи. На плис можно универсальный программатор заебенить?
Может кто видел драйвер для этого шнурка для 8.1?
Отставить панику.
В закромах родины был найден кабель на pl2303, который в свою очередь отлично работает на 8.1
int x = 100;
void setup()
{
pinMode(4,OUTPUT);
pinMode(5,OUTPUT);
pinMode(6,OUTPUT);
pinMode(7,OUTPUT);
}
void loop()
{
//1
digitalWrite(4,1);
digitalWrite(5,0);
digitalWrite(6,0);
digitalWrite(7,0);
delay(x);
//2
digitalWrite(4,1);
digitalWrite(5,1);
digitalWrite(6,0);
digitalWrite(7,0);
delay(x);
//3
digitalWrite(4,0);
digitalWrite(5,1);
digitalWrite(6,0);
digitalWrite(7,0);
delay(x);
//4
digitalWrite(4,0);
digitalWrite(5,1);
digitalWrite(6,1);
digitalWrite(7,0);
delay(x);
//5
digitalWrite(4,0);
digitalWrite(5,0);
digitalWrite(6,1);
digitalWrite(7,0);
delay(x);
//6
digitalWrite(4,0);
digitalWrite(5,0);
digitalWrite(6,1);
digitalWrite(7,1);
delay(x);
//7
digitalWrite(4,0);
digitalWrite(5,0);
digitalWrite(6,0);
digitalWrite(7,1);
delay(x);
//8
digitalWrite(4,1);
digitalWrite(5,0);
digitalWrite(6,0);
digitalWrite(7,1);
delay(x);
}
int x = 100;
void setup()
{
pinMode(4,OUTPUT);
pinMode(5,OUTPUT);
pinMode(6,OUTPUT);
pinMode(7,OUTPUT);
}
void loop()
{
//1
digitalWrite(4,1);
digitalWrite(5,0);
digitalWrite(6,0);
digitalWrite(7,0);
delay(x);
//2
digitalWrite(4,1);
digitalWrite(5,1);
digitalWrite(6,0);
digitalWrite(7,0);
delay(x);
//3
digitalWrite(4,0);
digitalWrite(5,1);
digitalWrite(6,0);
digitalWrite(7,0);
delay(x);
//4
digitalWrite(4,0);
digitalWrite(5,1);
digitalWrite(6,1);
digitalWrite(7,0);
delay(x);
//5
digitalWrite(4,0);
digitalWrite(5,0);
digitalWrite(6,1);
digitalWrite(7,0);
delay(x);
//6
digitalWrite(4,0);
digitalWrite(5,0);
digitalWrite(6,1);
digitalWrite(7,1);
delay(x);
//7
digitalWrite(4,0);
digitalWrite(5,0);
digitalWrite(6,0);
digitalWrite(7,1);
delay(x);
//8
digitalWrite(4,1);
digitalWrite(5,0);
digitalWrite(6,0);
digitalWrite(7,1);
delay(x);
}
брал с ебея, брат жив, дрова на ch340 встали на восьмерку без танцев с бубном, мигаю вот, прошиваю attiny 2313 с помощью пердуины и всякой хуйней занимаюсь
анон подскажи: есть код на си для тини2313. http://we.easyelectronics.ru/antonluba/samye-prostye-chasy-na-avr.html
я пытаюсь разобраться в нем, зашел в тупик.
>uint8_t power_on = 1;
это же объявление переменной с присвоением да?
дальше идет такая шляпа:
while(1)
{
if (power_on)
почему в скобках у if просто переменная без условий? как это работает?
Это выполняется так. False = 0, True > 0. Если у тебя в переменной не ноль, то правда, поэтому и без условия.
> Из чего можно выковырять дисплей для пердуины?
Выковырял из пульта пожарной сигнализации 4х40 мэлт, но он от моих выковыриваний подох. Потом наковырял несколько штук из факсов. Эти работают.
Ну вот на али продают из нокии дисплеи
https://www.youtube.com/results?search_query=arduino+nokia+5510
Найди у себя какой-то древний телефон и погугли можно ли его дисплей подключить.
ИБЛЯСУКАНАХУЙБЛЯ!!!!!!, работает оно с библиотекой u8glib (1.16 это важно), но я не пойму как там очистить экран.
>как очищать экран
Пиши библиотеки сам, таких вопросов не будет.
void PCD8544_Clear(void)
{
unsigned int i;
PCD8544_SendByte(SENDCOMMAND, 0x0C);
PCD8544_SendByte(SENDCOMMAND, 0x80);
PCD8544_SetXY(0, 0);
for (i = 0; i < 504; i++) PCD8544_SendByte(SENDDATA, 0);
PCD8544_SetXY(0, 0);
}
Я об этом писал в двух тредах, в том числе и в этом, но видишь ли, им проще дрочить wiring скетчи, чем писать на С, используя стандартные сишные либы для AVR, поэтому про STM тут нет смысла даже упоминать (хотя вроде как есть пердуино либы для работы с STM). А ведь есть еще некстген контроллер для IoT - ESP32, который вообще топчик из-за цены и 2х ядерного проца с кучей полноценно работающей периферии (в отличии от ESP8266). Сижу ковыряю его потихоньку.
>>290721
>сижу, ковыряю его потихоньку
Да потому, что нет пока достаточно удобоваримого, как на AVR IDE. Я тоже потихоньку ковыряю STM32, но пока работают только примеры, а обилие регистров, которые нужны для того же I2C, заставляет голову кружиться. Вроде всё настраиваю, но нет, не работает. Работает только пример. Хитрый Keil.
>>290717
Не понимаю тебя, ты хочешь сидеть в говне и когда я тебя пытаюсь вытащить, то ты ещё и брыкаешься? Ну и ладно. А я пока перейду на FreeRTOS, а далее на STM32.
Сап, радач.
Подскажите какой-нибудь драйвер для управления связкой мощных полевых транзисторов, чтоб можно было включать-выключать через GPIO.
>ты хочешь сидеть в говне и когда я тебя пытаюсь вытащить, то ты ещё и брыкаешься?
Щас бы не мочь в осознание того что у всех разные цели и потребности.
Про колёсико мыши слыхал, скотина?! На али - KY-040 Rotary Encoder.
>Я тоже потихоньку ковыряю STM32
Ты че рофлишь? Я переходя на него с AVR за полторы недели написал на STM32F4 прожку, для считывания изображения с камеры по DCMI, сжатия его в жпег и передачу в виде стрима на ESP8266 по SPI с использованием DMA. Получилась WiFi IP-камера с 25-30 фпс (из-за сжатия жпег на контроллере, вместо чтения уже готового жпег с камеры). Это все настолько изи делается с HAL и отладкой в Кейле.
С ESP32 другая проблема в виде пока еще недописанного производителями даташита и не самого лучшего мануала по периферии.
>Пердонькать регистры
>2017
>STM32
На, аутист http://www.st.com/en/embedded-software/stm32-standard-peripheral-libraries.html?querycriteria=productId=LN1939
> ESP8266 доки лучше чем на ESP32
Вот тут ты и спалился. Плюс JPEG сжатие на STM32F4 на 30фпс. Вебка на целых 160x120 пикселав, вау.
> ESP8266 доки лучше чем на ESP32
Да, они лучше, долбоеб диванный ты наш, потому что это законченный и обкатанный продукт, в отличие от последнего, который еще не довели до ума на аппаратном уровне.
> Вебка на целых 160x120 пикселав
640x480 60fps (8bit RGB/YUV), но контроллером затем на каждый кадр накладывается оверлей с fps и временем а потом шакалится до приемлемого уровня.
А теперь уебуй туда откуда ты вылез, ардуино ребенок и прежде чем написать очередной пост, постарайся подумать хотя бы минуту над текстом, потому что твой высер не имеет никакого смысла, просто вскукарек.
640x480 * 2 байта на пиксель = 600Кбайт, без внешней памяти не лезет даже в самый жирный stm32f4(69). Только ессе сжимать "построчно".
А шоб сжимать с частотой 25фпс... Ето 180,000,000 Гц (частота ядра) / 25 кадров = 7,200,000 циклов на сжатие одного кадра. Кадр 640х480 состоит из 4800 кусков 8х8. 7,200,000 / 4800 = 1500 циклов ядра чтоб сжать кусок 8 на 8. Даже если послать нахуй 3/4 всех коэффициентов, и рассчитывать 64/4=16 самых важных из них, то это 1500/16~=93 цикла на один коэффициент.
А потом квантизация и кодирование... короче говоря НЕ-ВЕ-РЮ, PROOOOFS!!!
А ESP32 доки действительно лучше. Описаны регистры (ну хоть как-то по сравнению с 8266) и драйвера лучше. С 8266 я джва дня ебался с SPI, а на ESP32 ваще как нехуй делать.
Залез мультиметром и оказалось, что она в нормальном положении замкнута, что не есть гуд.
> она в нормальном положении замкнута
Анус себе замкни, пёс! Схему посмотри, а потом лезь своими отростками.
>воткнуть 400 МГц проц (STM32F4) в вебку
>пропустить поток через другой процессор по SPI (1000 КГц? 2000 КГц? 4000 КГц?)
>чтобы этот другой процессор передал всё по вай-фаю, скорость-то хоть там какая?
>не велосипед на костылях
может быть не хватает тока чтобы двигатель крутился? купи себе драйвер на свой двигатель. если он крошечный то это тебе 100 рублей обойдется.
>>290799
мое увожение. достояно аруино треда
>>290973
ставишь компаратор. Сравниваешь свои 12 вольтовые линии с тестовым сигналом например 11 вольт. после компаратора уже идет будет активный уровень если напряжение больше 11 вольт и не будет активного уровня если ниже 11 вольт.
Если хочешь заморочиться и быть на 146% уверенным то свой тестовый 11 вольтовый сигнал через делитель заводи на АЦП микроконтроллера, и периодически тестируй его как опорный
У тебя пропадает напряжение? Просто светодиоды с резисторами не подойдут?
Установил драйверы с Digistump, проверил несколько портов - устройство видит но распознать не может, менеджер оборудования выдает ошибку 43. Для китайских плат дигиспарка тоже отдельные драйвера нужны или это я такой отдельный жэкспонат?
>и быть на 146% уверенным
а если хочешь быть на 246% уверенным то в качестве опорника для АЦП задаешь LM4130 или что то подобное.
хуй знает, вроде стандартный работал. Я недавно винду переустановил и дигиспарк еще не юзал, но до переустановки все работало вообще без проблем.
китаец попросил почту, мол, вышлет драйвера
будем ждать чем кончится
если заработает - скину сюды
У меня как-то раз с RobotDyn пришли такие... Проблема была в том, что косоглазые уебаны не те диоды Зенера впаяли (которые на линии данных УПШ висят), я их поменял и все стало заебэ
Как не убить ардуину?
dc-dc?
.
В ардуине стоит LM1117 который принимает до 20 вольт VIN to GND (получается 23.3).
При 23.3 правда греться будет как скотина, но при перегреве оно понижает напряжение.
А не, не 23.3, просто 20.
В любом случае твои 7 ничего ей не сделают. Питал от 12, всё нормально.
>290862
>>воткнуть 400 МГц проц (STM32F4) в вебку
>>пропустить поток через другой процессор по SPI (1000 КГц? 2000 КГц? 4000 КГц?)
>>чтобы этот другой процессор передал всё по вай-фаю, скорость-то хоть там какая?
>>не велосипед на костылях
Ну, блджаж, а хуйле еще делать, хардварные чипы с mjpeg/mpeg2/mpeg4 декодерами теперь хуй найдешь - или депрекейтед, или анально-огорожен, с шарками да блэкфинами связываться нехотеть + там надо в эти ёба-2д регистровые банки умень чтобы это хоть как-то работало быстро.
STM32 сразу после CMOS/CCD контроллера - это, наверное, меньший костыль из всех.
еще бы знать что это и где взять
Ардуину убить - это надо постараться, там все для дураков предусмотрено. А 7 вольт вообще не парься.
Ну я читал как к ней подключили блок питания от роутера, а там переменка. LM1117 сдетонировал.
Коннектор не подойдёт. А от роутера идеально подходит.
Объясните как это работает
Магия! Сжечь колдуна!
Воздушный трансформатор.
NE555 просто даёт частоту, так как это воздушный трансформатор. Чтобы трансформатор заработал, ему нужна частота.
То есть осцилограф будет выдавать вот такую картинку.Я просто думал что в другой обмотке токи будут возбуждаться только при синусоидальном изменении напряжения, тоесть я могу сделать тоже самое и с ардуиной т.к. не имею пока NE555.
Синус - идеал для трансформатора, но как уж получается, он и меандр со всеми переходными скушает.
Меандр можно представить как сумму синусоид.
Есть pir датчик движения, который, судя по принципу его работы, пролетающие мимо него предметы не увидит.
Если я напротив него размещу инфракрасный светодиод, среагирует ли датчик на пролет затеняющего ик свет предмета, или более надежно будет пердолиться с фоторезисторами и обычными ледами?
И еще, нужен самый миниатюрный блок питания 220 Вольт для ардуины.
>датчики Холла, не меряют такую нагрузку.
С хуя ли не меряют? Бери датчик холла, откалиброванный в диапазоне до 1А, и подключай его. Быстро и гальванически развязано.
>И еще, нужен самый миниатюрный блок питания 220 Вольт для ардуины.
На али есть адаптеры 5V-400ma примерно 18х25мм, поиском найдешь.
Не совсем понял, что ты имел в виду.
Мне нужен датчик движения, который должен в относительно широкой трубе фиксировать факт пролета небольших объектов. Контактный не подойдет т.к. в трубе бывают сильные вибрации, и сами предметы достаточно легкие. Поскольку из датчиков движения у меня под рукой есть только PIR, не реагирующий на нетеплокровных, я пытаюсь понять выгорит ли идея с затенением транзитным предметом ИК светодиода, или лучше ловить пролет несколькими фоторезисторами подсвеченной трубе?
Как подобное реализовать оптопарой я не догоняю.
Берёшь лазер, светящий линией. Берёшь группу фотоприёмников. Всё это на ширину твоей магистрали. АП! И собираешь широкополосный детектор пересечения линии, где фиксировать пролёт необходимо на всех датчиках сразу. Один приёмник нужен тогда и только тогда, когда ты точно уверен, что прилетит объект строго по центру.
>Берёшь лазер, светящий линией. Берёшь группу фотоприёмников.
Ебать ты олигарх. Группу фотоприёмников взять.
Вот правильный подход: берёшь два зеркала, один излучатель и один приёмник. Зеркала параллельно, а луч запускаешь между ними зигзагом...
Приторчал с катушки Роговского. https://ptelectronics.ru/wp-content/uploads/Primenenie-datchikov-toka-Pulse-Electronics-na-osnove-katushki-Rogovskogo-s-semeistvom-specializirovannyh-STPMxx-integralnyh-mikroshem-v-apparature-ucheta-energoresursov.pdf
Ни али такого не продают? Датчиков Холла меньше 5А тоже не нашел.
>Городить токовый шунт
На али есть такие платы https://ru.aliexpress.com/item/New-3-3-5v-CS5460A-Converte-Single-phase-Bi-directional-Power-Energy-Metering-Module-Chip-With/32742736157.html
клон https://www.cirrus.com/products/cs5460a/
или выдрать с пикрилетед
Такого тоже как грязи, но калибровать будешь ручками. А датчики холла чаще всего в одном корпусе с измеряемым проводником, поэтому расстояние и угол наклона измеряемого провода у них не меняется и они могут быть откалиброваны сразу с завода.
>>Берёшь лазер, светящий линией.
А как эту линию читать группой фотоприемников?
Разве лазер не светит узким пучком, который в один-то приемник направить бы?
С зеркалами вариант понятен: змейкой пустить и ждать "ни единого разрыва", но в узком пространстве оче геморройно с зеркалами возиться. От этого и родилась идея с PIR датчиком, чья линза смотрит по объёму, и ИК-шкой...
Проблема, места где будут находиться ардуина и компьютер достаточно удалены (20 метров). Usb не пойдет, надо что-то другое. Нахожу всякие wifi модули на али, типа nrf24l01, ESP8266 и т. п.
Какой модуль взять? По какому больше всего инфы в сети?
Мне надо только такой модуль, саму ардуину и все, больше ничего заказывать не надо? WiFi свисток для компьютера у меня есть, стабилизаторы на 3.3 вольта тоже найду.
блютус или нрф
>ESP8266
Он не модуль, заебал.
У него свой проц, намного быстрее твоей атмеги в ардуине. У него своя память, намного больше твоей атмеги. У него вайфай, которого у твоей вообще нет.
Но только не бери то говно с пика, где парочка ног выведена. Возьми ESP-12F (там внутри ESP8266) ну или чтоб прям как ардуина, возьми NodeMCU (там и плата и прошивка так называются. В прошивке можно писать на жаваскрипте) (прошивка подходит на любые ESP8266, не только на NodeMCU)
Сама микросхема может и не модуль, но у тебя на картинке явно не микросхема.
>У него свой проц
В nRF24LE и nRF24LU тоже свой проц, к тому же с аппаратным USB и нормальной документацией в отличие от ESP8266.
Я припаял к ардуино провод с медной монетой на конце.(собираюсь прикладывать эту монету к голове)
написал скетч который измеряет уровень сигнала и отправляет на компьютер. Как мне избавиться от ненужных помех и получать только показания с мозга.
Почитай как аппараты для снятия ээг работают.
В "радиоэлектронных игрушках" войцеховского была охуенная схема для радачеров твоего уровня, полностью разжеваная от и до.
Давай уже нейроинтерфейс создавай, сколько можно вручную двачевать.
Мне кажется, что нужно чуть поодаль от головы поставить второй датчик, и инвертировать его сигнал а потом смешать показания с головы с инвертированными показаниями с воздуха. Если помехи именно электромагнитные, извне, то их сигнал вступит в противофазу и останется лишь полезный головной.
Но это всё теория и вообще я ньюфаг.
Алсо, интересно, а если просто просто обмотать голову проволокой и припаять её конец к какому нибудь транзистору с высоким КУ, например кт3102е, на коллекторе будут усиленные шумы мозговых излучений?
я попробовал, но что то ничего.Я припаял два провода к двум аналоговым входам. даже если я просто кладу провода не прижимая к голове, всё равно идут помехи.Вот код http://pastecode.ru/426bd0d/
а что это
Крч проблема не в дровах, а в его прошивке. Дрова берутся на сайте дигиспарка, прошивка micronucleus шьется arduino as isp, в винде все подхватывается.
Я не стал себе ставить фьюз rstdsbl, ибо пяти пино вполне хватает, но можно и с ним заморочиться.
Хочу сам сделать. Что бы потом перед пацанами хвастоваться.
Какое-то промышленное говно
Логика с программно настраиваемыми входами/выходами.
Написано же VIPA, какой-то ПЛК.
Аноны, что за хуита, не могу разобраться с энкодерами. Пытаюсь пользоват вот такой код.
#include <LiquidCrystal_I2C.h>
#include <TimerOne.h>
#include <Button.h>
int up=0;
int down = 0;
long pos = 0;
LiquidCrystal_I2C lcd(0x27, 16, 2); // i2c address 0x27
void setup() {
pinMode(2, INPUT);
pinMode(3, INPUT);
attachInterrupt(0, button1, RISING);
lcd.init();
lcd.backlight();
}
void loop() {
if (pos > 0) {
up++;
lcd.setCursor(14, 0);
lcd.print(up);
pos = 0;
}
if (pos < 0) {
down++;
lcd.setCursor(14, 1);
lcd.print(down);
pos = 0;
}
}
void button1() {
if ( digitalRead(3) == HIGH) pos++;
else if ( digitalRead(3) == LOW) pos--;
}
В моём понимании, он должен справа на экране рисовать две цифры, сколько раз энкодер прощёлкнулся вверх, а сколько в низ. Но блядь, нихуя подобного. Точнее что-то похожее, но когда крутишь в одну какую-то сторону, постоянно прибавляется противоположное число, медленнее, но всё равно. Что это за ебала? Притом, если используешь этот код для вывода в СериалПорт (вместо строчек про lcd в главном лупе просто вывод pos в сериал порт), всё считается нормально, а с ЛСД нихуя. Как быть? Проблема в выводе на экран? Но мне для моей срани нужно выводить данные на LCD экранчик. Энкодеры пробовал разные, последний - какой-то типа специально для ардуинки на плате распаяный.
Аноны, что за хуита, не могу разобраться с энкодерами. Пытаюсь пользоват вот такой код.
#include <LiquidCrystal_I2C.h>
#include <TimerOne.h>
#include <Button.h>
int up=0;
int down = 0;
long pos = 0;
LiquidCrystal_I2C lcd(0x27, 16, 2); // i2c address 0x27
void setup() {
pinMode(2, INPUT);
pinMode(3, INPUT);
attachInterrupt(0, button1, RISING);
lcd.init();
lcd.backlight();
}
void loop() {
if (pos > 0) {
up++;
lcd.setCursor(14, 0);
lcd.print(up);
pos = 0;
}
if (pos < 0) {
down++;
lcd.setCursor(14, 1);
lcd.print(down);
pos = 0;
}
}
void button1() {
if ( digitalRead(3) == HIGH) pos++;
else if ( digitalRead(3) == LOW) pos--;
}
В моём понимании, он должен справа на экране рисовать две цифры, сколько раз энкодер прощёлкнулся вверх, а сколько в низ. Но блядь, нихуя подобного. Точнее что-то похожее, но когда крутишь в одну какую-то сторону, постоянно прибавляется противоположное число, медленнее, но всё равно. Что это за ебала? Притом, если используешь этот код для вывода в СериалПорт (вместо строчек про lcd в главном лупе просто вывод pos в сериал порт), всё считается нормально, а с ЛСД нихуя. Как быть? Проблема в выводе на экран? Но мне для моей срани нужно выводить данные на LCD экранчик. Энкодеры пробовал разные, последний - какой-то типа специально для ардуинки на плате распаяный.
Пердуина, пердуина
Отсоси у бедуина.
Дребезг контактов. При посылке на UART задержка больше получается, чем при посылке на LCD. Лечи дребезг контактов задержками или ёмкостями на контактах.
Ой, какой лс. Копипастил из ВК просто.
Ни что за устройство, ни какой принцип управления. Ничего. "500 рублей и не смогу питаться" - очередной прибедняжка.
Ардуина выключалась.
Лучше скажи, потянет ли обычное, не твердотельное реле 220V/5A на протяжении 20 часов в сутки? Я понимаю, что она десятку ампер обещает, но это китай, да и в целом практика интересует.
Поставь не китай, если не доверяешь.
Потянет. Но судя по моему опыту, недолго.
Извините, в глаза ебусь, в начале, перед комментариями стояла единичка. Хотя откуда она там взялась я понятия не имею. ИДЕ -- говно, нужно переходить на МК и писать в привычном редакторе.
Всем привет, я купил компоненты, соберите мне их и напишите прошивку.
Я что, зря деньги тратил?
Ну ебана, сначала думаешь и разводишь схему. Потом пердолишь свое удаленное управление, хз че это такое. Потом паяешь это говно, кодишь прошивку, налаживаешь это говно, дорабатываешь, плов готов! Купи готовую мигалку с пультом, йоба.
Собирай, разрешаю. Как соберёшься делать 8-16-24-32 канала для RGB ленты, можешь написать сюда, я посмеюсь над твоими мытарствованиями, а потом помогу.
plaq plaq
Картон + скотч.
И вдогонку, если я приобрел программатор для atmega8/atmega48/atmega88, то будет ли он работать со, скажем, atmega8a (количество и расположение ножек идентично atmega8)
Извиняюсь, если спрашиваю платину.
Ты там жив еще? Интересно чем закончилось. Понятно что ты соснул, интересно как именно.
мега8 она и есть мега8, все остальные цифробуквы в названии это лишь модификации.
Ты покупаешь программатор не для определенной микросхемы, а для определенного интерфейса: SPI, JTAG, UART, SWIM, SWD и другие.
Давече зашел на радио рынок и, на сэкономленные с обедов купилки, приобрел у дяди инфракрасный датчик дистанции. Во время обмывания в местном макдаке обнаружил что к нему не прилагается шлейфа. Вернулся к дяде, он и говорит, мол, к нему проводов не положено и дал пластиковых вилок, металлических контактов и шлейфовую полоску без розетки. Собственно вопрос, как из этой хуиты сделать контакт (пикрелейтед)?
Хотябы как нагуглить название этой ебалы чтобы найти DIY на ютубе
А, стой, тебе всё дали. Ну припаиваешь и вставляешь.
Вообще там специальная обжимка есть, но я бы просто паял.
>Мэмкин_инженер
Вопрос
У меня есть ненужный HDD(жесткий диск), у него мотор на ТРИ входа (три контакта торчит), я хочу задействовать сей моторчик как енкодер - хочу прокручивать ось мотора и чтобы ардуино принимало все эти показания в коде , то бишь сделать с него аналоговый вход.
это возможно??
Сорри, я многого не знаю по этой теме, еще не начитан
Ооо от чистого сердца м8
просто я хочу сделать крупные сегменты, т.к. я слепой, чтоб можно было издалека видеть. Так работать будет или хуй?
Да, но будет бледно светить. Можно поебаться с транзисторами и усилить, но придется под это целую платку разводить.
Купи матрицу P10 светодиодную, в ней 32*16 светодиодов. Из них экраны собирают с бегущей строкой, сможешь сделать всё, что захочется.
/
Name : Arduino, 4-разрядный 7-сегментный индикатор, 74HC595 сдвиговый регистр, DS1307 RTC
Author : CheBuraw
Date : 11 Feb, 2015
Modified:
Version : 1.0
4-разрядный 7-сегментный индикатор. общий анод
1 A F 2 3 B
_______________|__|__|__|__|__|_____________
| | | | | |
| A | A | | A | A |
| F B | F B | dp | F B | F B |
| G | G | | G | G |
| E C | E C | dp | E C | E C |
| D | D | | D | D |
|_________|_________|____|_________|_________|
| | | | | |
E D dp C G 4
74HC595 Map:
_______
Q1 |1 16| Vcc PINS 1-7, 15 Q0 - Q7 Output Pins
Q2 |2 15| Q0 PIN 8 GND Ground, Vss
Q3 |3 14| DS PIN 9 Q7" Serial Out
Q4 |4 13| OE PIN 10 MR Master Reclear, active low
Q5 |5 12| ST_CP PIN 11 SH_CP Shift register clock pin
Q6 |6 11| SH_CP PIN 12 ST_CP Storage register clock pin (latch pin)
Q7 |7 10| MR PIN 13 OE Output enable, active low
GND |8_____9| Q7" PIN 14 DS Serial data input
PIN 16 Vcc Positive supply voltage
_______
LED B -|1 16|-5V
LED C -|2 15|-LED A
LED D -|3 14|-PIN 11
LED E -|4 13|-GND
LED F -|5 12|-PIN 8
LED G -|6 11|-PIN 12 ; 1uF TO GND
LED dp-|7 10|-5V
GND-|8_____9|-NILL
/
#include <Wire.h>
#include "RTClib.h"
RTC_DS1307 RTC;
int latchPin = 8; //Пин "защелки" первого регистра подключен к ST_CP входу первого регистра отвечающего за сегменты
int clockPin = 12; //Пин подключен к SH_CP входу 74HC595
int dataPin = 11; //Пин подключен к DS входу 74HC595
int TimeLight = 5; //время для разогрева сегментов
byte SegDisplay; // переменная для вывода символов на индикаторе
byte RazrDisplay; // переменная для включения разрядов
// Настройка комбинации для отображения каждого номера на дисплее.
byte g_digits[12]={
B11000000, B11111001, // 0 1
B10100100, B10110000, // 2 3
B10011001, B10010010, // 4 5
B10000010, B11111000, // 6 7
B10000000, B10010000, // 8 9
B11111111, }; // все сегменты выключены
byte g_digitsx[12]={
B11000000, B11001111,
B10010010, B10000110,
B10001011, B10100100,
B10010000, B11000111,
B10000000, B10000010,
B11111111, };
byte g_registerArray[4]={1,2,4,8}; //массив цифр, указывающий разряды
void setup() {
Wire.begin();
RTC.begin();
// обозначаем все пины как выходы
pinMode(latchPin, OUTPUT);
pinMode(clockPin, OUTPUT);
pinMode(dataPin, OUTPUT);
}
void loop() {
int hour,minute,sec,disp = 0;
DateTime now = RTC.now();
hour = now.hour();
minute = now.minute();
sec = now.second();
disp = (hour 100) + minute;
// Разбиваем цифру по разрядам индикатора
if (disp < 10) // если наша цифра меньше 10, то
{
Indicate(0, 11); // пишем в первый разряд пусто
Indicate(1, 11); // пишем во второй разряд пусто
Indicate(2, 11); // пишем в третий разряд пусто
Indicate(3, disp); // пишем в четвертый разряд нашу цифру
}
else if (disp < 100) // если наша цифра меньше 100, то
{
Indicate(0, 11); // пишем в первый разряд пусто
Indicate(1, 11); // пишем во второй разряд пусто
Indicate(2, disp / 10); // пишем в третий разряд - цифру делёную на 10
Indicate(3, disp % 10); // пишем в четвертый разряд цифру оставшуюся от деления на 10
/
Допустим наша цифра 25.
Если мы ее поделим на 10, то у нас получится 2,5. Цифры после запятой, в данном случае,
у нас не остаются. Таким образом мы имеем в третем разряде цифру 2.
В чевертый разряд мы, как раз и записываем цифру-остаток полученную в результате деления.
В нашем случае это и есть та самая 5.
Аналогичным образом разбивается наша цифра и далее.
*/
}
else if (disp < 1000)
{
Indicate(0, 11);
Indicate(1, disp / 100);
Indicate(2, (disp % 100) / 10);
Indicate(3, disp % 10);
}
else
{
Indicate(0, disp / 1000);
Indicate(1, (disp % 1000) / 100);
Indicate(2, (disp % 100) / 10);
Indicate(3, disp % 10);
}
}
void Indicate(int r,int x)
{
SegDisplay=g_digits[x]; // получаем цифру и выводим символ, из массива цифр, соответствующий этой цифре.
if (r==2) SegDisplay=g_digitsx[x];
RazrDisplay=g_registerArray[r]; // получаем цифру и выводим номер регистра, из массива цифр, соответствующий этой цифре.
digitalWrite(latchPin, LOW); // устанавливаем синхронизацию "защелки" на LOW
shiftOut(dataPin, clockPin, MSBFIRST, RazrDisplay); // Записываем информацию для второго регистра (Номер разряда)
shiftOut(dataPin, clockPin, MSBFIRST, SegDisplay); // Записываем информацию для первого регистра (Номер символа)
digitalWrite(latchPin, HIGH); //"защелкиваем" регистр, тем самым устанавливая значения на выходах
delay(TimeLight); // пауза, чтобы сегменты "разгорелись"
}
/
Name : Arduino, 4-разрядный 7-сегментный индикатор, 74HC595 сдвиговый регистр, DS1307 RTC
Author : CheBuraw
Date : 11 Feb, 2015
Modified:
Version : 1.0
4-разрядный 7-сегментный индикатор. общий анод
1 A F 2 3 B
_______________|__|__|__|__|__|_____________
| | | | | |
| A | A | | A | A |
| F B | F B | dp | F B | F B |
| G | G | | G | G |
| E C | E C | dp | E C | E C |
| D | D | | D | D |
|_________|_________|____|_________|_________|
| | | | | |
E D dp C G 4
74HC595 Map:
_______
Q1 |1 16| Vcc PINS 1-7, 15 Q0 - Q7 Output Pins
Q2 |2 15| Q0 PIN 8 GND Ground, Vss
Q3 |3 14| DS PIN 9 Q7" Serial Out
Q4 |4 13| OE PIN 10 MR Master Reclear, active low
Q5 |5 12| ST_CP PIN 11 SH_CP Shift register clock pin
Q6 |6 11| SH_CP PIN 12 ST_CP Storage register clock pin (latch pin)
Q7 |7 10| MR PIN 13 OE Output enable, active low
GND |8_____9| Q7" PIN 14 DS Serial data input
PIN 16 Vcc Positive supply voltage
_______
LED B -|1 16|-5V
LED C -|2 15|-LED A
LED D -|3 14|-PIN 11
LED E -|4 13|-GND
LED F -|5 12|-PIN 8
LED G -|6 11|-PIN 12 ; 1uF TO GND
LED dp-|7 10|-5V
GND-|8_____9|-NILL
/
#include <Wire.h>
#include "RTClib.h"
RTC_DS1307 RTC;
int latchPin = 8; //Пин "защелки" первого регистра подключен к ST_CP входу первого регистра отвечающего за сегменты
int clockPin = 12; //Пин подключен к SH_CP входу 74HC595
int dataPin = 11; //Пин подключен к DS входу 74HC595
int TimeLight = 5; //время для разогрева сегментов
byte SegDisplay; // переменная для вывода символов на индикаторе
byte RazrDisplay; // переменная для включения разрядов
// Настройка комбинации для отображения каждого номера на дисплее.
byte g_digits[12]={
B11000000, B11111001, // 0 1
B10100100, B10110000, // 2 3
B10011001, B10010010, // 4 5
B10000010, B11111000, // 6 7
B10000000, B10010000, // 8 9
B11111111, }; // все сегменты выключены
byte g_digitsx[12]={
B11000000, B11001111,
B10010010, B10000110,
B10001011, B10100100,
B10010000, B11000111,
B10000000, B10000010,
B11111111, };
byte g_registerArray[4]={1,2,4,8}; //массив цифр, указывающий разряды
void setup() {
Wire.begin();
RTC.begin();
// обозначаем все пины как выходы
pinMode(latchPin, OUTPUT);
pinMode(clockPin, OUTPUT);
pinMode(dataPin, OUTPUT);
}
void loop() {
int hour,minute,sec,disp = 0;
DateTime now = RTC.now();
hour = now.hour();
minute = now.minute();
sec = now.second();
disp = (hour 100) + minute;
// Разбиваем цифру по разрядам индикатора
if (disp < 10) // если наша цифра меньше 10, то
{
Indicate(0, 11); // пишем в первый разряд пусто
Indicate(1, 11); // пишем во второй разряд пусто
Indicate(2, 11); // пишем в третий разряд пусто
Indicate(3, disp); // пишем в четвертый разряд нашу цифру
}
else if (disp < 100) // если наша цифра меньше 100, то
{
Indicate(0, 11); // пишем в первый разряд пусто
Indicate(1, 11); // пишем во второй разряд пусто
Indicate(2, disp / 10); // пишем в третий разряд - цифру делёную на 10
Indicate(3, disp % 10); // пишем в четвертый разряд цифру оставшуюся от деления на 10
/
Допустим наша цифра 25.
Если мы ее поделим на 10, то у нас получится 2,5. Цифры после запятой, в данном случае,
у нас не остаются. Таким образом мы имеем в третем разряде цифру 2.
В чевертый разряд мы, как раз и записываем цифру-остаток полученную в результате деления.
В нашем случае это и есть та самая 5.
Аналогичным образом разбивается наша цифра и далее.
*/
}
else if (disp < 1000)
{
Indicate(0, 11);
Indicate(1, disp / 100);
Indicate(2, (disp % 100) / 10);
Indicate(3, disp % 10);
}
else
{
Indicate(0, disp / 1000);
Indicate(1, (disp % 1000) / 100);
Indicate(2, (disp % 100) / 10);
Indicate(3, disp % 10);
}
}
void Indicate(int r,int x)
{
SegDisplay=g_digits[x]; // получаем цифру и выводим символ, из массива цифр, соответствующий этой цифре.
if (r==2) SegDisplay=g_digitsx[x];
RazrDisplay=g_registerArray[r]; // получаем цифру и выводим номер регистра, из массива цифр, соответствующий этой цифре.
digitalWrite(latchPin, LOW); // устанавливаем синхронизацию "защелки" на LOW
shiftOut(dataPin, clockPin, MSBFIRST, RazrDisplay); // Записываем информацию для второго регистра (Номер разряда)
shiftOut(dataPin, clockPin, MSBFIRST, SegDisplay); // Записываем информацию для первого регистра (Номер символа)
digitalWrite(latchPin, HIGH); //"защелкиваем" регистр, тем самым устанавливая значения на выходах
delay(TimeLight); // пауза, чтобы сегменты "разгорелись"
}
тебе нужны TM1638, их можно подключать сколько угодно, хоть телевизор себе собирай на светодиодах.
Прости, но я не пишу на ардуиновском.
А продавец тебя дважды выебал, теперь тебе третий раз к нему идти за инструментом.
Ага, уже все бросились кодить, наивный ты шо пипец. Всего-то в три раза больше кода будет в итоге.
Если я хочу влепить по 4 SMD 0603 на один сегмент, какие примерно резюки нужны? Я просто нуб немножк
Интересно, как быстро отлетят gpio у твоей ардуины, если их все сразу включить
Там что-то типа 20мА на пин и не больше 60мА в сумме. Если всё включить, что-нибудь может сгорит.
Смотря какие резисторы там. Красные светики самые экономичные - могут ярко гореть и от 5ма, а при таком подключении через каждый пин будут питаться не больше 4 диодов. А у атмеги до 40ма на каждую ногу можно вжарить. Короче все легитимно.
>покупаешь нанку с китая для начала
>моргаешь встроенным диодом, который заведён на 13 пин
>собираешь схемку посложней для измерения ёмкости кондюков
>для назначения пинов используешь пикрл 1
>нихуя не работает
>методом тыка узнаёшь, что D2 на самом деле заведён на 2 пин
>в интернетах об этом нихуя нет
У меня ардуинка палёная, или так и должно быть?
>У меня ардуинка палёная
>оригинал стоит 20 евро
Нууу хууууй знает.
В любой случае атмеги там одинаковые.
Этот вариант не подходит. Да знаю что так можно, но мне нужно, что бы приклада дублировала брелок просто.
Спасибо, анончик, проколупал отверстие.
Теперь Разобраться бы с яркостью подсветки, она пиздец какая яркая (синий фон белые символы), смотреть неприятно. Как ее уменьшить?
На i2c(s?), который шел с экраном есть джампер, который включает-выключает подсветку, а если в место его вотнуть резистор какой нить? И если можно, то какой?
Спасибо, уважаемый.
>брелока, частот
да есть
связка телефон блютуз ардуино модуль 433
я взломал свои ворота там все зависит от типа брелка
а можно через ардуинку брелком управлять просто
ищи на ютуб как вскрывать ворота ардуинкой
ардуленьки, скажите плиз, если я не хочу заказывать весь стартовый набор, но мне нужно допустим 6 ардуинок, 6 шилдов и по мелочи, то как мне не переплачивать за доставку? ведь на алике платится доставка за каждую покупку, а не полной корзины. может есть сайт еще что, чтобы по дешману купить выборочно не переплачивая за доставку ?
> допустим 6 ардуинок
бери по 10 с бесплатной доставкой.
https://ru.aliexpress.com/store/product/Free-shipping-10pcs-lot-UNO-R3-MEGA328P-DON-T-with-usb-cable-for-Arduino-Compatible-Dropshipping/731260_32338080863.html?spm=a2g0v.12010612.0.0.551a33d0DiOYmj
Зачем, если есть ebay?
Смотри пикрилейтед, набросал говна в корзины.
Если что то не дойдет или будет с браком, то палка поможет, а саппорт али последнее время любит выебываться.
Ну я на али регулярно заказываю, до уровня А4 еще 72 очка. В него входят:
- ускоренный возврат средств для заказов стоимостью до 100$;
- ускорение спора;
Но даже на А2 мне во всех случаях возвращали деньги или высылали товар заново в течении 1-3 дней от начала спора.
>Но даже на А2 мне во всех случаях возвращали деньги или высылали товар заново в течении 1-3 дней от начала спора.
Чтот ты везучий дохуя. У меня вот около дюжины споров прошло с тех пор как я А4, только в 2 из них продаван сразу сдавался и возвращал деньги, зато в четырех - морозился и сам барыга, и алиэкспрессовский саппорт моментально лепил "Not valid" на все мои доказательства, включая видео, без объяснения причин (спор я, естественно, при этом проигрывал).
Я бы уже ушел от такого ублюдочного отношения обратно на ебай, но там интерфейс и поиск за последние годы окончательно испортился, хуй чего найдешь.
>>296163
От продавца зависит - добавляй в корзину несколько его товаров и смотри, списалась ли цена доставки в discount. Если магазин адекватный и это разрешает, то заплатишь только за одну доставку.9
о заебись. а в поиске как-нибудь можно фильтр по партиям товара ставить?
Я не знаю, всяеские сигнализаторы, системы какого нибудь мониторинга, робототехника, кароч все, что можно построить на этой плафторме, имеет ли смысл строить на продажу?
Тут все зависит исключительно от спроса на это в твоей мухосрани. Если есть всякие сигнализаторы или систему мониторинга, но они дорогие, то можешь попробовать сделать свой похожий вариант с какими-нибудь дополнительными примочками и продавать немного дешевле.
Легче всего вкатиться, имея знакомых в какой-то сфере, где используется оборудование автоматизации и сделать для них устройство, обкатать его и потом предлагать другим людям из этой сферы.
Сап, радач. Есть четыре термопары и мне надо с них считывать температуру. У меня есть два варианта: тупо усиливать сигнал операционником и считывать аналоговым входом или через мультиплексор поочередно подавать сигнал с термопары на микросхему max6675 (термопарный усилитель) и дальше уже в ардуину. Что лучше? Четыре max6675 не предлагать, ибо дорого.
Третий варик:
Берешь stm8s003f3u6tr по цене 25р/шт и ставишь около каждой термопары, сразу меряешь и отправляешь дальше в цыфре.
> что он мне 40 милливольт измерит.
Что-то мне подсказывает, что это зависит от опорного напряжения.
Что-то мне подсказывает, что поебать, какое опорное напряжение и сам по себе контроллер не сможет измерять десятые милливольта.
> сам по себе контроллер не сможет измерять десятые милливольта
Ты заебал. 10-ти разрядный АЦП. 3.3В(питание)/1024=3.2миливольта/шаг. Если ты ему опорный прецизионный 1 вольт захуяришь, то будет 970 микровольт/шаг
Это ты заебал, не знаешь нихуя и предлагаешь хуйню. Если точность до пяти градусов хотя бы, то нужно разрешение 200 микровольт.
> наоборот.
А у Терры наоборот. И ты, что 600р зажал на 4 усилителя термопары? Что хоть измеряешь?
Зажал, хочу использовать имеющееся. Измеряю печки, до 1000 градусов.
Чет сомневаюсь, а не ебнит ли без резисторов?
>>297161
Господа, собрал свой первый программатор, установил необходимые драйвера на usbasp и установил на него свежую прошивку. В сборе при попытке read с atmega8 получаю пикрелейтед, проблема в моей кривой пайке или в программной части?
Вангую что это всё делается в каком нибудь онлайн компиляторе картинок. И тупо проще мышкой провода провести и скинуть jpg, чем пол часа обьяснять что к чему. Ну и ардуино же расчитан на детей 12+ так что сам догадайся.
поэтому пишу сюда. Купил себе Все необходимое, однако не могу прошить преобразователь USB-TTL на максимальные скорости по этой инструкции: https://osmocom.org/projects/baseband/wiki/HardwareCP210xTutorial
Выдает ошибку из пика
В наличии также есть Arduino UNO и USBASP 2.0, если это чем-то может помочь.
Ну установи pyusb йопт. Только если у тебя python2 и python3, установи для того, которым прошивалку запускаешь.
Ленту светодиодную купи, епта. Там тебе и драйверы и независимое включение.
Гугли ws2812 и подобные. На Али есть и отдельные диоды и ленты и герлянды на йолку и матрицы и куча другого говна.
Каждый диод имеет собственный контроллер, шим и питание, от пердуины нужны только данные по одному проводу.
Идущий в электронику корзина палками не бить
Плата это не источник питания, источник питания там преобразователь AMS1117. Погугли его даташит и в нем нагрузки, которые для преобразователя посильны.
Переводи сопротивление в делей, лул.
Переменный резистор -> АЦП -> Ну а дальше ты понял.
Либо возьми энкодер. Его тоже можно крутить. С ним работать ещё проще, если грамотно обработать.
Подключил к дуне esp8266 и по SoftSerial 9600 общаюсь, с написанным приложением на android по udp. Всё полный порядок, часа пол гонял пакеты, в мониторе порта 100% полученных пакетов. Но всё изменилось, когда народ огня развязал войну подключил двигатели, через l298n, по отдельности можно нажимать любое действие, и всё будет ок, но как только я хочу поехать прямо и направо - перезагружается wifi. Rst на esp подтянул резистором 10кОм к 3.3В, ch-en тоже. Еще заметил, то если земля драйвера не контачит с общей землей - работа стабильнее, и получается, что esp и ардуина питаются от usb пк, а драйвер двигателя от usb 5В (отдельно). Увы, но когда я хотел потестить без дебага и отключил ардуину от пк, то запитал и её с esp и с драйвером двигателя от 2х послед 18650, на выходе которого 7,8В, тогда даже пакеты с задеркой приходили.
ESP жрёт сильнее GSM модема, ставлю рядом с ней дополнительную ёмкость на 1000мкФ/10В-16В. Ещё лучше, когда ёмкость цепи питания 2000мкФ. Если этого не сделать, то ESP будет заваливать уровень RXD и TXD, превращая их в пилообразный сигнал, что плохо фиксируется микроконтроллером. Двигатель включил - помехи создал, помехи = ухудшение приёма именно МК.
>подтянул резистором 10кОм
Добро пожаловать в клуб. >>305826
Меняй на 1к, но всё ещё не факт, что вайфай будет работать. Движки создают наводки, по крайней мере в этом видео
https://www.youtube.com/watch?v=3n76iMTHXuE
Почему вот такое условие:
if (PINC & B00110001 != B00110001)
никогда не срабатывает? Сколько бы я ни давил на нужные кнопочки. Т.е. должно сработать при низком уровне на PC0 или PC4 или PC5. Хоть все 3 кнопки одновременно нажать - похуй, никакой реакции.
А вот такой вариант:
byte j=PINC;
j=j & B00110001;
if (j != B00110001)
работает идеально. Т.е. сам создаю временную переменную, получаю состояние порта и делаю логическую операцию ВНЕ if.
Почему так?
>B00110001
Это препроцессором делается что ли? Это как-то ненормально.
В gcc префикс 0b для двоичных констант был сделан около 10 лет назад как расширение. Это же было добавлено в стандарт С++14. А ардуинщики до сих пор...
В ардуино много чего препроцессором делается. В чем твои претензии? Ну, убрали нолик чтобы домохозяек не пугать. В данном случае компилятор хоть так, хоть 0b00110001, хоть 0x31, хоть 49 - скомпилирует одинаково.
Дивись лучше призывам всегда использовать тормозные методы типа digitalRead/Write, типа "так проще и правильней". Шутка ли, время исполнения почти 2 мс(!).
Хотел сказать чтоб ты подумал, нахуя эти скобки, но потом вспомнил, что это ардуинотред и не стал ввиду бесполезности.
В данном случае не оче понятно, пояснишь?
Вроде логично сделать сперва арифметику и битовые операции, а потом уже сравнивать все это логическими операциями. Но компилятор делает не так. Что он вообще делает в данном случае? Типа сравнил два одинаковых числа, по условию != получил false, а потом сделал между PINC и boolean битовую операцию, получив некое число, затем отодрал от него младший бит, который очевидно всегда будет 0/false в данном случае. Как-то тупо, если все так. Неужели логические операторы имеют приоритет перед битовыми и арифметикой?
Ключевое слово тут - препроцессор, я думаю.
Аноны, есть пикрил (L298N motor driver). Подаю на ENA нарастающий ШИМ, а на N1, N2 1 и 0 соответственно. Почему моторчик включается ровно на половине шима и крутится всегда с одинаковой скоростью?
Пробовал, так же.
Анонче, подскажи как?
Ты делал не побитовую а логическую операцию, и вообще смотри приоритеты операций http://en.cppreference.com/w/c/language/operator_precedence
>не побитовую а логическую операцию
Как раз побитовое И он и делал. А потом - сравнение.
Но, приоритет == и != _выше_, чем у битовых операций (это пздц, на самом деле, контр-интуитивно совершенно).
При этом, у логических И, ИЛИ, и т.д. - приоритет _ниже_, чем у битовых (что нормально и интуитивно).
Короче - в любой непонятной ситуации - ставь скобки, лол.
>приоритет == и != _выше_, чем у битовых операций
>При этом, у логических И, ИЛИ, и т.д. - приоритет _ниже_, чем у битовых
Это не пиздец, это ад ёбаный. Почему так сделано?
Только и остается любую операцию пихать в скобки.
А я разобрался! Оказывается аналоговый выход это не шим, а шим делают только некоторые из цифровых. Давно на дуине ничего не делал - забыл всё.
>аналоговый выход это не шим
А какие ещё в ардуине есть "аналоговые" выходы, кроме шима?
>Подаю на ENA нарастающий ШИМ, а на N1, N2 1 и 0 соответственно.
Мне кажется, что надо не так.
ENx = Enable. На него, по идее, надо подавать 1.
А на INx (Input) подавать ШИМ.
Но, конечно надо смотреть схему.
https://youtu.be/tJ7JcweIOZ4
лави андурина
высший просер жадности лени
им боги говарили
но...
но?
ани усрались
http://kiosksoft.ru/news/2017/06/30/vse-magaziny-roznichnoj-seti-magnit-pereshli-na-onlajn-kassy-18236
https://youtu.be/1l0zkWJ_rFQ
кагда у меня встает
....
трапика по кругу
еще раз
Ну типа аналоговый может, например, дать 2.5 вольта, а цифровой - только 0 или 5.
Подключать можно и как ты написал, но тогда на один мотор будут использоваться 2 ШИМ выхода, а не 1 как у меня. Зато EN можно будет просто перемычкой замкнуть.
То есть, если те пины (id0-4) не подключены, идёт стандартное разрешение?
>оторвать/выпаять хуи
NYET. Купи пачку коннекторов и обожми пёзды.
https://ru.aliexpress.com/item/10000000_Pizda_2.54_connector/32618759551.html
Поищи дешевле. Это первые попавшиеся мне.
А вот по 45р/200шт. Куда уж дешевле? https://ru.aliexpress.com/item/200-2-54-Dupont/32840530116.html?spm=a2g0v.10010108.1000015.10.21f3f36fEoFE4U
Есть сайты с примерами-коллекциями звуков и мелодий?
Я делал такое, только без ардуино, чисто два триггера на К561ТМ2 + несколько транзисторов + симистор. Схема делила частоту сети на 3 путём пропусков 2 полупериодов через 1. Всё норм работало.
Кекус Максимус.
У меня палка закреплена на шарнире и имеет на концах два двигателя с воздушными винтами, нужно всю эту байду стабилизировать в горизонте.
У меня и целых полно. Контроллеры там APM и PIXHawk. Но они мне без надобности.
Мне нужен только кусочек кода, который дал бы мне понять как происходит взаимодействие внутри скетча на этапе от получения данных от IMU датчика до выдачи шим сигнала. Хотя бы на примере одного канала (оси) и одного двигателя.
0-180 градусов - 1000 - 2000 мс
Считывай данные, гони в градусы и загоняй в сервы с инверсией. Там НЕ КУСОЧЕК кода. Но вот пример:
{
SetServoPosInGrads(0, Yaw -1);
SetServoPosInGrads(1, Pitch -1);
Yaw_Now = Azimuth_without - 180;
if (Yaw_Now > Yaw_Last)
{
Yaw_Last++;
if (Yaw < 60) Yaw++;
}
if (Yaw_Now < Yaw_Last)
{
Yaw_Last--;
if (Yaw > -60) Yaw--;
}
Move_mSec = 0;
}
Сервы всегда противодействуют.
И вот теперь нужно дописать ее с использованием ПИД регулятора, что бы при изменения угла вокруг одной оси, ПИД регулятор выдавал ШИМ сигнал на корректировку пространственного положения.
То есть нужно что бы при отклонении допустим "pitch" от 0 градусов ардуинка выдвала шим сигнал в милисикундах, который который бы рос (или падал) до тех пор, пока угол не вернется в ноль.
Может сталкивался кто, или пример схожий знает?
Недавно начал изучение ардуино и не очень понимаю тот код на который ты сослался.
Буду сейчас его построчно гуглить, но было бы хорошо, если бы ты дал пояснения к нему.
Вот что это за функция "SetServoPosInGrads"? Чисто по-английски понятно что написанно, но не понятно как это работает.
Не нашел ее в описании к библиотеке servo.h
Прости, ты же ардуинщик. Это самописная функция, она преобразует градусы в миллисекунды и записывает их в буфер управления сервами.
Давай к сути. У тебя есть Roll и Pitch. Тебе надо их умножить на "-1" и задать сервам. Это простой вариант. Он кособокий, сервы постоянно будут дёргаться, так как каждый датчик даёт свою погрешность и дребезг. Поэтому в том коде используется переменная для подсчёта миллисекунд, чтобы обеспечить задержку между регулировкой противодействия углу наклона. Далее, угол управляется не присвоением, а увеличением/уменьшением, опять таки для гладкости и мягкости управления.
Блять пацаны сука блять прошу не пиздить за ньюфажество если буду слишком глупые вопросы задавать.
Нужно что то типо радиорыле что бы вот тупо когда замыкаешь одну цепь на плате передатчике,замыкалась та же цепь но уже на плате приемнике.это мне нужно для того что бы блять сука блять создавать разную примитивную хуйню радиоуправляемую ту же машинку рс да блять сука блять а рыле не подходит потому что на них пизданутые цены при том что они обычно одно-двух цепочные.
Че делать блять
nRF24L01 + ATMega8 + сервы и драйвера щёточных двигателей. Пульт по той же схеме: nRF24L01 + экран для отображения информации + два переменных резистора + 4 кнопки. Вместо nRF24L01 любой другой приёмопередатчик или пара приёмник и передатчик.
Нет. В отличии от аккума, в конденсаторе при зарядке/разрядке не происходит химических процессов. Между обкладками конденсатора диэлектрик (вещество не проводящее ток), а в аккуме - электролит (вещество проводящее ток). При зарядке аккума электроэнергия переходит в энергию связи молекул, при разряде - наоборот.
Если на аккумулятор подать напряжение больше номинального, в нем начнут протекать изначально непредусмотренные химические реакции. Если действительно интересуешься, открой школьный учебник химии - там подробно объясняется электролиз.
Химию я помню, Катионы и аниончики разбегаются к полюсам, создавай потенциал.
С растворами сложных веществ, возможно и получится что-то иное, но это уже что-то странное... Считай надо разложить составные ионы еще раз.
Бумп. В перекоте 2к постов. Доедаем легитимный тред.
Кто то пробовал брать arduino из шапки? Нормально ли он работает?
>Нормально ли он работает?
А чому ему ненормально работать? Возьми да сам прошей загрузчик в атмегу и радуйся.
корочи, если это черная пластиковая коробочка, то это 99% свинцовый аккумулятор, опрделить напряжение можно по количеству банок, 1 банка - 2 вольта, там около контатктов должно быть крышка под которой резиновые пробки, их количество умножь на 2 вольта.
емкость определяется габаритами, берешь в магазе который по размеру подходит
В моем случае это аккумулятор вырванный из телефона в начале 2000. Маркировка на корпусе потерлась, а по остаткам найти даже подобное низзя, ибо не выпускают. В теории должен быть на 3.7v, но я боялся последствий, ежели его начать заряжать большим током...ладно, срок сыска уже вышел.
И тут у меня возникла проблема: Сложнее радиоуправляемой машики на андрюхе я ничего не делал.
С парусами я ещё могу разобраться. Сервоприводы + парочка ниток свое дело сделают, но как быть с пушками?
Предположим, что проще всего сделать их при помощи латунного цилиндра и токарного станка. Эти два элемента у меня есть. Но как сдетонировать заряд? Была идея использовать пиротехническую электроспичку, но они, насколько я знаю, одноразовые, а каждый раз пихать их в пушку - гемор. Была идея с нихромовыми нитями, но сложности в том, что их придется запитывать, причем нихуево так, к тому же их весьма вероятно расхуярит сдетонировавший заряд.
Потом взгляд пал на подобие совковых электрозажигплок, но я без понятия как они устроены и как это все вообще впихнуть в многострадальную ардуину, я тоже без понятия.
Мб кто то делал нечто подобное и знает решение моих терзаний?
Тебе не в ардуинотред, а на горячую линию запрещённой организации. Нашёл что спросить в ардуинотреде.
Ну он же блять просто взрывает пороховой пиротехнический заряд, без снаяряда. Как пистоны в детском пистолете
А я ебу как они там взрываются, здесь, в ардуинотреде? У меня тут модули, скетчи, байтоёбы. Пусть в /wm/ пиздует или куда там ещё...
>Была идея с нихромовыми нитями, но сложности в том, что их придется запитывать, причем нихуево так, к тому же их весьма вероятно расхуярит сдетонировавший заряд.
Идея правильная, в заводских так и сделано. Можно собрать самому из вейпа\зажигалки и капсюля, они доступны и главное - дёшевы.
>они, насколько я знаю, одноразовые, а каждый раз пихать их в пушку - гемор
Лол, а порох ты не собираешься пихать каждый раз, или его тоже сервоприводы насыплют? Юзай электрозапалы и не выебывайся.
Сделай имитацию: выстрел - пневматикой с мучным или цементным зарядом, синхронно - звук выстрела с мп3 плеера. Безопасно и без осечек. http://confectionerycannon.com/
Т.е. микровзрыв нити переживут? Такс, тогда все становится в разы проще.
>>315145
Собираюсь конечно. Но одно дело насыпать пороха или серы со спичесных головок и забить ватный или войлочный пыж, а другое переподключать электрозапал.
>>315147
А кингстоны то набуя? Сложно же пиздец. Имхо я не смогу сконструировать и рассчитать такую систему.
>>315224
Думал и про этот вариант. Никогда в жизно не работал с пневматикой, не знаю, как она себя ведет. К тому же, для неё же понадобится что-то типа балона с ВВД или CO. Очень объемные и тяжелые штуки, имхо.
>А кингстоны то набуя?
Чтобы открыть, когда ядра в пушках закончатся.
Врагу не сдаётся..., вот это вот всё, лол.
Зная себя и свои навыки пайки, оно после второго выстрела само загорится и потонет. За то какой эпик! Судно взрываяясь разлетается на пенопласт и бальзу и размазывается по водоему.
Освоил установку библиотек в Arduino IDE, sublime text, но через боард менеджер добавить эту ебалу не получилось.
>через боард менеджер
Надо, наверное, указать дополнительный источник в борд менеджере, откуда и будет загружена эта ёбала.
Погугли.
Идея отличная, к тому же пушки будут многозарядными, но электролизер должен будет иметь достаточно высокую мощьность, что бы наполнить аж 8 пушек.
Но, в итоге этот мощный электролизер и сам может нехуёво пиздануть. Что делает эту затею ещё более увлекательной!
Можешь вкатиться в NodeMCU. Писать на интерпретируемом LUA.
https://nodemcu.readthedocs.io/en/master/
Собрать себе бинарник можно тут https://nodemcu-build.com/
Один раз прошил и дальше по UART заливай код через ESPlorer
Там 20-30 сек между выстрелами. Опытный британский комендор делал 1 выстрел раз в 6 минут. И не забывай об отдаче при выстре.
uint8_t ее_состояние EEMEM = 0;
float ее_храню_говно EEMEM = 0;
float ее_храню_говно_бэкап EEMEM = 0;
main{
float храню_говно_в_оперативке;
uint8_t состояние_бекапа;
if(ее_состояние == МЭЙН_СЛОМАЛСЯ){
храню_говно_в_оперативке = eeprom_read_float(&храню говно_бэкап);
eeprom_write_word(&храню_говно, храню_говно_в_оперативке);
eeprom_byte_write(&ее_состояние ,БЭКАП_СЛОМАЛСЯ);
}
else if(ее_состояние == БЭКАП_СЛОМАЛСЯ){
храню_говно_в_оперативке = eeprom_read_float(&храню говно);
eeprom_write_word(&храню_говно_бэкап, храню_говно_в_оперативке);
eeprom_byte_write(&ее_состояние ,МЭЙН_СЛОМАЛСЯ);
}
else{
храню_говно_в_оперативке = 0;
eeprom_write_word(&храню_говно, храню_говно_в_оперативке);
eeprom_write_word(&храню_говно_бэкап, храню_говно_в_оперативке);
eeprom_byte_write(&ее_состояние ,МЭЙН_СЛОМАЛСЯ);
}
//стартовые функции и процедуры
while(1){
if(состояние_бекапа == 0){
eeprom_write_word(&храню_говно_бэкап, храню_говно_в_оперативке);
состояние_бекапа = 1;
eeprom_byte_write(&ее_состояние ,МЭЙН_СЛОМАЛСЯ);
}
else{
eeprom_write_word(&храню_говно_бэкап, храню_говно_в_оперативке);
состояние_бекапа = 1;
eeprom_byte_write(&ее_состояние ,БЭКАП_СЛОМАЛСЯ);
}
}
}
Суть программы в том, чтобы стараться безопасно какнуть флотом в EEPROM, чтобы его потом достать в случае отключения, поэтому мы ставим защиту вида eeprom_byte_write(&ее_состояние ,БЭКАП_СЛОМАЛСЯ) и заранее предполагаем что мы не какнем, а обосремся на следующей записи. Если же мы не обосрались и флот записать удалось - то мы должны только записать 8-битное (однобайтовое) значение БЭКАП/МЭЙН_СЛОМАЛСЯ, и даже в случае отключения и повторного включения мы проверяем что у нас сломалось и грузим из другой памяти, в которую писали раньше и которая не сломалась.
Но иногда все грузится нормально из EEPROM'a, а иногда он тупо сбрасывается, и я не могу понять где я обосрался, если операции с uint8_t по-идее вообще атомарные, а с EEPROM работает простой автомат и по идее значение отличное от БЭКАП_СЛОМАЛСЯ и МЭЙНСЛОМАЛСЯ не должны записываться в ячейку &ee_состояние.
uint8_t ее_состояние EEMEM = 0;
float ее_храню_говно EEMEM = 0;
float ее_храню_говно_бэкап EEMEM = 0;
main{
float храню_говно_в_оперативке;
uint8_t состояние_бекапа;
if(ее_состояние == МЭЙН_СЛОМАЛСЯ){
храню_говно_в_оперативке = eeprom_read_float(&храню говно_бэкап);
eeprom_write_word(&храню_говно, храню_говно_в_оперативке);
eeprom_byte_write(&ее_состояние ,БЭКАП_СЛОМАЛСЯ);
}
else if(ее_состояние == БЭКАП_СЛОМАЛСЯ){
храню_говно_в_оперативке = eeprom_read_float(&храню говно);
eeprom_write_word(&храню_говно_бэкап, храню_говно_в_оперативке);
eeprom_byte_write(&ее_состояние ,МЭЙН_СЛОМАЛСЯ);
}
else{
храню_говно_в_оперативке = 0;
eeprom_write_word(&храню_говно, храню_говно_в_оперативке);
eeprom_write_word(&храню_говно_бэкап, храню_говно_в_оперативке);
eeprom_byte_write(&ее_состояние ,МЭЙН_СЛОМАЛСЯ);
}
//стартовые функции и процедуры
while(1){
if(состояние_бекапа == 0){
eeprom_write_word(&храню_говно_бэкап, храню_говно_в_оперативке);
состояние_бекапа = 1;
eeprom_byte_write(&ее_состояние ,МЭЙН_СЛОМАЛСЯ);
}
else{
eeprom_write_word(&храню_говно_бэкап, храню_говно_в_оперативке);
состояние_бекапа = 1;
eeprom_byte_write(&ее_состояние ,БЭКАП_СЛОМАЛСЯ);
}
}
}
Суть программы в том, чтобы стараться безопасно какнуть флотом в EEPROM, чтобы его потом достать в случае отключения, поэтому мы ставим защиту вида eeprom_byte_write(&ее_состояние ,БЭКАП_СЛОМАЛСЯ) и заранее предполагаем что мы не какнем, а обосремся на следующей записи. Если же мы не обосрались и флот записать удалось - то мы должны только записать 8-битное (однобайтовое) значение БЭКАП/МЭЙН_СЛОМАЛСЯ, и даже в случае отключения и повторного включения мы проверяем что у нас сломалось и грузим из другой памяти, в которую писали раньше и которая не сломалась.
Но иногда все грузится нормально из EEPROM'a, а иногда он тупо сбрасывается, и я не могу понять где я обосрался, если операции с uint8_t по-идее вообще атомарные, а с EEPROM работает простой автомат и по идее значение отличное от БЭКАП_СЛОМАЛСЯ и МЭЙНСЛОМАЛСЯ не должны записываться в ячейку &ee_состояние.
Хуй знает.
Вот это вот читни, например:
https://engineerzero.blog/2013/07/11/five-things-to-remember-pun-about-arduino-eeprom/
Не, ну у меня там вместо eeprom_write_word() стоит eeprom_write_float() на флотах и eeprom_write_dword() на 32-битных переменных, просто быстро писал и не заметил. Ну и плюс на некоторых стоит eeprom_update чтобы не задрачивать сильно эти ячейки
>>315836
>1. Data has to converted to byte format before it can be saved.
Нахуя, если в avr/eeprom.h уже есть функции которые пишут и байты, и word, и dword, и float и целые блоки информации?
Сам EEPROM у меня обновляется каждую минуту
Пролема возникает в том, что при внезапном отключении питания весь EEPROM у меня ресетится, хотя по идее функции eeprom_byte_write(&ее_состояние ,БЭКАП_СЛОМАЛСЯ) как раз должны предотвращать полный ресет и EEPROM должен грузиться из предыдущей записи.
Писать 4 байта - долго.
Прерывания могут мешать.
Если нет, то вообще непонятно, в чём тут может быть дело.
Изолированный тест сделай попробуй.
Вот тут вот эта тема подробно разбирается:
https://wp.josh.com/2014/05/13/ws2812-neopixels-are-not-so-finicky-once-you-get-to-know-them/
Чувак пишет, что не всё так страшно, и там не везде нужны такие строгие тайминги и т.д.
Лол. У меня на нопах и использовании задержек записи в регистр порта работают от 1 до 16 линий.
Нашёл в примерах WiFiTelnetToSerial, то что надо. Как теперь заставить это чудо разобрать приходящую строку на номер пина и его состояние?
>Прерывания могут мешать.
Не должны, в самом коде у меня нету прерываний, плюс у EEPROM свой State Machine, так что по идее ему вообще насрать на прерывания когда на него данные передались.
Я же говорю, у меня какая-то проблема с записью самой однобайтовой переменной &ее_состояние, потому что судя по всему вместо БЭКАП_СЛОМАЛСЯ или МЭЙН_СЛОМАЛСЯ в нее пишется какая-то чепуха, хотя это и короткая операция eeprom_byte_write.
В изолированном тесте пишется-читается нормально?
Добавляй потихоньку всё говно, и смотри, когда перестанет.
Также, возможно ты просто не там ищешь, и у тебя какой-то косяк вообще в другом месте. Так часто бывает.
Проверь значение этой переменной до передачи в функцию записи, и после выхода из неё, и т.п.
>В изолированном тесте пишется-читается нормально?
А изолированный тест - это как?
>Проверь значение этой переменной до передачи в функцию записи, и после выхода из неё, и т.п.
Но я пишу туда сразу числовое значение, да и смысл ее проверять, если я и так знаю что я туда пишу?
МЭЙН_СЛОМАЛСЯ и БЭКАП_СЛОМАЛСЯ - это числовые значения которые у меня заданы еще при компиляции через #define и во время исполнения программы вообще никак не меняются.
Она у меня только в eeprom и хранится, все функции которые я использую для работы с этой переменной я написал еще в оригинальном посте.
>А изолированный тест - это как?
Выброси всё, что не относится к проблеме.
Я так понял, что ты это и попытался сделать.
Но, там у тебя много лишнего.
И код, который ты запостил - он не рабочий вообще.
Короче, если у тебя проблемы с записью-чтением значения по адресу - сделай программу, которая _только_ это и делает. Если работает - значит проблема не в этом.
Понял что там используются какие то циклы. Спрошу еще раз как сделать задержку в сотни наносекунд.
Код, который там в статье, компилируется не на всех версиях ардуино.
Окончательная версия кода на гитхабе у него использует другую функцию задержки - на ассемблере (см. строки 57, 81).
Т.е. просто вставляются команды nop в цикле, непосредственно при записи в порт, примерно то же самое, что написал анон >>315935
https://github.com/bigjosh/SimpleNeoPixelDemo/blob/master/SimpleNeopixelDemo/SimpleNeopixelDemo.ino
Скачай этот скетч и разберись с ним как следует.
Прочти комменты - они важны - в гугл транслейт тебя же не забанили?
Разбирать чужой код, использовать его осмысленно - это полезно.
написал код для управления светодиодной лентой, радует то что если менять в самом внешнем цикле количество итераций, то горит столько светодиодов сколько нужно. Не могу менять цвет и следовательно выключить.
Конечно.
Не, ну а смысл от хуйни, с которой невозможно применить накопленные знания и материалы?
А смысл от твоих знаний и материалов, если их невозможно применить к одному из популярных модулей?
>ни один мосфет
Это известная проблема.
Мосфеты надо брать logic level - они именно для этого.
>3.3 вольта
А как же на STM32 и вообще на армах народ живёт?
Я лично этим добром (esp) не занимаюсь, но тысячи школьников как-то успешно пользуются.
>к его пинам по простому числу не обратишься
Это наоборот нормально. А по числу как раз не нормально, т.к. если учитывать то что выводы группированы по регистрам (портам), то можно немного оптимизировать. А также в таком случае можно будет изменять/читать состояние нескольких выводов одновременно.
Сам цикл задержки тоже лучше делать на асме - так ты будешь точно знать, сколько тактов занимает всё вместе.
И объявлять volatile, чтобы компилятор не оптимизировал.
См. ссылку на гитхаб выше, если это я не тебе писал.
> к его пинам по простому числу не обратишься
Ору от этого ардуинщика. Как в первый раз. Он сделал мой день.
Не, ну надо потратить время, погуглить.
Если займёт несколько дней - это нормально.
В двух словах о чём там вообще:
Основное - не надо мудрить, реально точные задержки нужны только в одном месте - про это вся статья. В коде есть соотв. коммент.
По самому коду:
Там всю работу делает одна функция - sendBit(bool bitValue).
Чтобы выдержать точные задержки и иметь гарантию, что компилятор ничего не переделает по-своему, он использует асм.
В асме используются дефайны (см. начало кода), привязывающие код к частоте чипа и задающие величину задержек.
Если ты не видишь в коде определение символа - значит это стандартный библиотечный (F_CPU и т.д.).
По сути - всё, что тебе нужно - это эти дефайны и функции sendBit и sendByte и прочее - до 170-й строки (и после 340-й частично).
Можешь взять и тупо использовать это всё, это нормально, в процессе разберёшься.
После 170-й строки идут примеры эффектов - там видно, как используются функции.
Проблема может быть с пониманием ассемблера.
Но, там простые команды, и всё это легко гуглится.
Вообще, весьма грамотный и красивый код, приятно посмотреть.
Если разберёшься, как всё это работает - будет очень полезно.
Возьми хороший текстовый редактор с подсветкой синтаксиса Си и с удобным поиском. UltraEdit или Notepad++ или другой, и поковыряй код в нём - чтобы быстро находить, где используется тот или иной символ и т.п.
Я кстати не знал что можно юзать ассемблер прямо в IDE для ардуино. Я тогда наверно ассемблер по изучаю.
https://ideone.com/ExAr5p
надо было установить входные и выходные порты.
теперь я могу выключать и менять цвет. но происходит все это только с первым светодиодом
Учитывается ли в задержках время, затрачиваемое на работу цикла for()?
Время на вызов функции?
Время выполнения команды записи в порт?
Это всё довольно много времени, причём, не всегда это время точно известно.
Если бы всё было так просто, кто бы стал изъёбываться с ассемблерными циклами, записью в порт из ассемблера и прочим?
Если есть осциллограф или логический анализатор, можешь сделать просто переключение пина с частотой, задаваемой одной из твоих функций задержки, и посмотреть, насколько оно совпадает с твоими ожиданиями. Можешь сильно удивиться.
Возьмём delay400(), например.
Похоже, у тебя частота чипа 16 МГц.
1 ноп = 1 такт = ~62 нс
6 ноп = 375 нс
Т.е. издержки на for() и на вызов функции у тебя получаются в 2.5 раза меньше 1 такта лол.
А на деле там тактов 5-6 наверное, надо смотреть дизассемблер или знать (можешь погуглить).
А ещё есть время записи в порт, минимум 1 такт, я не помню, я не настоящий ардуинщик, лол.
И т.д. и т.п.
не нихуя не получается, еще я заметил что цвет не всегда отображается верно
Что мешает тебе попробовать, хотя бы, ассемблерные "циклы" задержек из того примера?
Например, вот задержка на n циклов:
inline void delayCycles(int n) {
asm volatile(
".rept %[ncycles] \n\t"
"nop \n\t"
".endr \n\t"
:
:[ncycles] "I" (n)
);
}
Этот код просто тупо скопирует nop n раз в скомпилированном коде, т.е. никаих доп. издержек на for() или что-то такое.
"\n\t" - это символы перевода строки и табуляции, если что.
Если бы тебе нужна была задержка в десятки-сотни циклов, то так делать было бы накладно.
А на единичных циклах инлайн - самое то.
Также, обрати внимание на модификатор inline у функции, это уберает затраты на вызов функции. Т.е. функция превращается в макрос, и тупо инлайнится по месту.
https://ideone.com/PjLC0c
не люблю использовать то что не понимаю, поэтому и не использую библиотеку NeoPixel
я правильно воспользовался циклом?
А параметр n в функцию задержки кто передавать будет?
Ты как-то рановато за всё это взялся, мне кажется, лол.
Лучше тебе вообще не мудрить и просто писать руками нужное к-во нопов прямо по месту, для тестового кода это нормально.
Типа:
asm volatile (
"nop \n\t"
"nop \n\t"
"nop \n\t"
"nop \n\t"
"nop \n\t"
"nop \n\t"
);
Также, предположи, что запись в порт занимает 2 такта (мне не удалось нагуглить точно).
По самой логике работы с неопикселями - не вникал, если честно. По идее это должно быть нормально описано где-то, и вся проблема тут в том, чтобы обеспечить нужные задержки в нужных местах.
ну я же в последнем своем сообщении написал код где я передаю в функцию параметр n для каждого случая свое значения.
Только что проверил - у меня компилируется нормально.
(Я только свою функцию задержки проверил).
Может у тебя там опечатка, русская 'с' с латинской перепутана и т.п.?
Скопипасти из моего коммента.
А лучше - тупо набей нопы руками, как я говорил.
Хз, погуглил, может быть разное.
Сделай просто нопы в нужном количестве, 5-15 лишних строк добавить это нормально. Потом можно уже оптимизировать, когда заработает.
делал задержки исходя отсюда
https://ideone.com/TSigzp
вот код
все равно горит только 1 светодиод, цвета вроде верные
Попробуй в другой раз.
Если раньше такого не делал, с первого раза редко получается.
Попробовал бы сначала использовать готовые функции из того кода, как я и говорил вначале.
Там реально строк 100 чистого кода.
Это гораздо меньше, чем любая готовая библиотека.
Можно вообще взять целиком тот скетч, и (после проверки) выбросить середину, кроме одного примера.
Потом написать свою середину, что ты там хотел переключать.
И может выясниться, что с задержками у тебя было всё нормально, а косяк вообще в другом.
По-любому, это лучше, чем тупо использовать библиотеку, если ты, конечно, хочешь научиться чему-то и "понимать".
У тебя там в обоих циклах переменная i, например.
В остальное не вникал, но, подозреваю, что дело там не только в задержках.
Короче, попробовал я сам это всё (пример с гитхаба).
Код у этого чувака странный.
Т.е. базовые функции рабочие, а вот примеры - ни один не работает, пришлось своё писать, просто бегущий огонь сделал одним цветом и т.п.
У меня, правда, пока есть только линейка из 16 пикселей, но, я, естественно, поменял константу PIXELS.
Разбираться лень, может потом.
Но, этот его код задуман для огромных лент, у него там 1056 пикселей по-умолчанию, и, наверное, не рассчитан на такое маленькое количество.
Но, базовые функции - задержки и т.д. - работают нормально.
Вот это вот работает, если интересно (мой код после 153 строки):
https://pastebin.com/ZLCwcJwL
На Ардуино Уно - пин D12.
Собственно, я сам давно хотел эту тему разобрать подробно, и сделать самостоятельно на STM32, но было лень. Теперь уже сделаю, наверное, лол.
сегодня снова сел за это дело оказывается мой код почти нормальный просто уменя каким то чудом сгорел или повредился второй светодиод и 13.
Теперь зажигаются те светодиоды которые захочу проблема только с цветом
Твой код вообще рабочий.
Как раз хотел сейчас написать про это.
Там есть пара явных ошибок, которые надо исправить.
Также, вместо 40 мс надо делать 6-7, и не после каждого пикселя, а после всех.
Посмотри тут, если не догадаешься:
https://pastebin.com/X5VUx4t1
>Выброси всё, что не относится к проблеме.
А как тогда дебагать и смотреть значение переменных?
>Но, там у тебя много лишнего.
>И код, который ты запостил - он не рабочий вообще.
Мне теперь все 3000 линий кода сюда постить?
>проблема только с цветом
Цвета там должны быть в порядке G-R-B.
Биты каждого цвета должны передаваться, начиная со старшего, так же, как записываются в коде - слева направо (у тебя так).
Ещё хочу сказать, что не надо хранить биты как символы в строке. Это неэффективно во всех смыслах.
Используй байты (unsigned char) для каждого цвета.
Дальше - битовые операции.
Например, чтобы проверить 6-й бит в байте b, надо написать:
if (b & 1 << 6) {
//=1
} else {
//=0
}
Соответственно, вставляешь это в цикл:
for (int bn = 7; bn >= 0; bn--) {
if (b & 1 << bn) {
//=1
} else {
//=0
}
}
Обрати внимание на обратный порядок в цикле - первым пойдёт старший бит.
Ну, и пин лучше тоже дёргать на ассемблере - sbi и cbi.
И когда посылаешь пакет (все пиксели), надо запрещать прерывания, а потом разрешать.
Вот тот же код, что у тебя, но переписанный в соответствии с этим:
(все светодиоды загораются неярким синим)
https://pastebin.com/tAuKV5XU
>проблема только с цветом
Цвета там должны быть в порядке G-R-B.
Биты каждого цвета должны передаваться, начиная со старшего, так же, как записываются в коде - слева направо (у тебя так).
Ещё хочу сказать, что не надо хранить биты как символы в строке. Это неэффективно во всех смыслах.
Используй байты (unsigned char) для каждого цвета.
Дальше - битовые операции.
Например, чтобы проверить 6-й бит в байте b, надо написать:
if (b & 1 << 6) {
//=1
} else {
//=0
}
Соответственно, вставляешь это в цикл:
for (int bn = 7; bn >= 0; bn--) {
if (b & 1 << bn) {
//=1
} else {
//=0
}
}
Обрати внимание на обратный порядок в цикле - первым пойдёт старший бит.
Ну, и пин лучше тоже дёргать на ассемблере - sbi и cbi.
И когда посылаешь пакет (все пиксели), надо запрещать прерывания, а потом разрешать.
Вот тот же код, что у тебя, но переписанный в соответствии с этим:
(все светодиоды загораются неярким синим)
https://pastebin.com/tAuKV5XU
FAT32 не используют сейчас, насколько я знаю.
Просто FAT FS (FAT16 с длинными именами и т.д.).
Ардуинщики не форматируют карты контроллером.
https://forum.arduino.cc/index.php?topic=228201.0
https://www.arduino.cc/en/Reference/SDCardNotes
Насчёт STM32 - не знаю.
Гугол говорит, что тоже не особо.
>Что куда и как писать микроконтроллером?
У Там SPI-интерфейс.
Сам я с этим не работал, гугол в помощь.
Инфы полно.
http://narodstream.ru/stm-urok-88-sd-spi-fatfs-chast-1/
Форматировать, наверное, так тоже можно, просто мало кому надо.
>Просто FAT FS (FAT16 с длинными именами и т.д.).
У FAT16 ограничение на объем вроде бы 4 Гб, при максимальном размере кластера. Так что нет.
https://ideone.com/qynBFK
посмотрел ваш код и сделал вот это только у меня все горит белым цветом и ничего не могу сделать
вродебы ничем почти не отличается от вашего
https://pastebin.com/X5VUx4t1
если сейчас ничего не получиться то буду использовать ваш.
Что бы программировать ардуину на ассембелере нужно изучить просто ассемблер или нужен какойто особенный ассемблер?
Разве ардуина только на атмегах бывает? А даже если только на атмегах, то для них можно использовать не только gcc, соответственно всякие директивы могут отличаться.
>не только gcc
Каким хуем gcc связано с ассемблером? Учишь правила хорошего тона на ассемблере, потом смотришь систему команд и заебы нужного микроконтроллера.
Что бы управлять адресной светодиодной лентой не с помощью библиотек, а с помощью своей программы.
Таким, что там binutils, который практически составная часть gcc.
Вообще у слова ассемблер несколько значений - это может быть язык программирования, а может и программа. Поэтому ассемблеров для одного и того же микроконтроллера может быть много, это система команд одна.
Основные проблемы:
1) не было volatile
2) были неверные задержки - для нуля.
Сделал раздельные T1H, T1L, T0H, T0L.
И так нормально можно подстраивать задержку. Должно быть (для 16 МГц):
T1H = 12 тактов
T1L = 8 тактов
T0H = 4 такта
T0H = 12 тактов
Это уже на 2 такта меньше расчётного.
В твоём случае я ещё по одному нопу закомментировал, из-за того, что пишешь в порт не не ассемблере. И оно иногда сбоило и всё загоралось белым.
3) не было inline на функциях задержек
4) Самое главное: Три цикла подряд не хотели работать.
Не знаю почему - какая-то фигня с компиляцией, видимо.
Возможно - надо было назвать переменные циклов по-разному, хотя, язык этого не требует.
Вынес в отдельную inline функцию.
И так правильнее - не надо дублировать код.
Также - форматируй код.
Вот тут, например:
https://codebeautify.org/c-formatter-beautifier
Используй define, чтобы кто-то другой, или ты сам, мог быстро перенастроить на другие пины.
И дёргать пин на ассемблере - в данном случае - гораздо правильнее. Во первых - тайминги точнее можно сделать. Во вторых - дёргается не весь порт, а один пин.
Вот исправленный код:
https://pastebin.com/XDyypv8r
Основные проблемы:
1) не было volatile
2) были неверные задержки - для нуля.
Сделал раздельные T1H, T1L, T0H, T0L.
И так нормально можно подстраивать задержку. Должно быть (для 16 МГц):
T1H = 12 тактов
T1L = 8 тактов
T0H = 4 такта
T0H = 12 тактов
Это уже на 2 такта меньше расчётного.
В твоём случае я ещё по одному нопу закомментировал, из-за того, что пишешь в порт не не ассемблере. И оно иногда сбоило и всё загоралось белым.
3) не было inline на функциях задержек
4) Самое главное: Три цикла подряд не хотели работать.
Не знаю почему - какая-то фигня с компиляцией, видимо.
Возможно - надо было назвать переменные циклов по-разному, хотя, язык этого не требует.
Вынес в отдельную inline функцию.
И так правильнее - не надо дублировать код.
Также - форматируй код.
Вот тут, например:
https://codebeautify.org/c-formatter-beautifier
Используй define, чтобы кто-то другой, или ты сам, мог быстро перенастроить на другие пины.
И дёргать пин на ассемблере - в данном случае - гораздо правильнее. Во первых - тайминги точнее можно сделать. Во вторых - дёргается не весь порт, а один пин.
Вот исправленный код:
https://pastebin.com/XDyypv8r
binutils может и самостоятельный, но gcc явно нет. Каким тогда ассемблером можно скомпилировать код, выдаваемый gcc -S ? А чем будешь линковать полученные объектные файлы? А инлайновый ассемблер в gcc через что проходит? Так что gcc без binutils использовать практически не получится.
Без "оффтопа", быстрофикс
Он не совсем мой, лол.
Я взял вот это вот: https://ideone.com/TSigzp
И стал допиливать, под впечатлением от того кода на гитхабе.
Смысл в том, что мы до того момента говорили только о задержках, как таковых, и в протокол работы с неопикселями я просто не вникал вообще. Поэтому, взял твой код за основу.
В итоге, получилось практически то же самое, что и у того чувака, только я решил не делать отдельную функцию sendBit() и использовал просто сдвиг для проверки битов.
Если я залью скетч в мк на плате, а потом неким магическим образом этот мк окажется в другой плате, он будет РАБотать?
В другой АНАЛОгичной плате или просто с таким-же МК?
> Например, как оно будет работать при линковке inline функции из одного объектного файла с другим?
>А если использовать указатель на inline функцию?
А если из Питона дёргать inline функцию, лол?
Какое всё это имеет отношение к задаче?
>оно не всегда обязано работать
Есть пруфы, что в локальных функциях компилятор AVR GCC игнорирует inline?
И да, можно макрос использовать.
Но инлайн функция даёт проверку типов и выглядит лучше.
И это ардуино-тред, опять же.
Вот пруфы. GCC 4.9.2 с сайта микрочипа. Запускаю avr-gcc -mmcu=atmega328 test.c -S -O2, текст программы на картинке. При 100 повторах подстановка выполняется (вторая картинка), а при 10000 компилятор вызывает функцию через call (третья картинка).
Следует ожидать что GCC не будет инлайнить когда заканчивается память.
Не, ну это логично.
Ещё и от оптимизаций зависит, наверное - скорость vs размер кода.
Согласен, что бездумно inline использовать не стоит.
Но, в этой конкретной задаче - всё нормально.
Там же не более 6-ти повторов получается.
И задержки короткие - 12 нопов максимум.
>web - serial
Если ты это гуглил, то неудивительно, что ничего не нашёл.
Веб - отдельно. Ком-порт - отдельно.
Между ними - нечто. Т.е., твоя программа.
Веб-сервер гуглится на раз.
Как сделать веб-интерфейс, если есть веб сервер - это другая история. Но тоже гуглится легко.
Как работать с ком-портом - тоже.
Вот и всё.
Да, я
Хз как так вышло
Он таблетки от домофона поджигает, нашёл кого спросить. Возьми да загугли. https://www.rcgroups.com/forums/showthread.php?1335765-Building-a-palm-size-quad-copter-Introducing-a-new-simple-flight-controller
> Веб-сервер гуглится на раз.
> Как сделать веб-интерфейс, если есть веб сервер - это другая история. Но тоже гуглится легко.
А проще нельзя? Как-нибудь напрямую...
я например нагуглил только отправку с веб морды в ком порт через текст.бокс. а вот обратно все криво. Допилю обработку строки и выведу. Те примеры что делают чаты. Телнетом коннектишся. В порт пишут хорошо. А вот обратно кракозябры через раз. Я телнет и так и сяк корежил. Нифига не выходит. Проще думаю ловить строку и туда же в текст.бокс на веб.морду кидать.
Есть TCP/IP, можно ли напрямую передавать через него с компьютера на условную есп без гипертекста, серверов, браузера и прочей залупы?
Конечно.
Если знаешь, как работать с сокетами.
На том же ардуиновском Ethernet-шилде стоит чип, где сокеты вообще аппаратно реализованы (2 штуки, помоему).
На устройстве должен быть открыт серверный сокет, на каком-то порту. Ты подключаешься к нему, пишешь-читаешь. Можно и наоборот - устройство подключается к твоему TCP-серверу.
Можно совместить.
Можно использовать UDP.
И т.д. и т.п.
Если данные у тебя ASCII - подключиться для тестов можешь через telnet или аналогичный клиент.
Если никогда такого не делал - потренируйся на ПК, сделай клиент и сервер на питоне, например.
Инфы полно.
Вот, например:
https://github.com/jeelabs/esp-link
И гугол находит разное по запросу "arduino tcp-serial bridge"
Такие вещи уже бывают готовыми.
И даже в виде промышленных устройств - Moxa NPort.
Отмена, нет такого сервопривода.
Но я никак понять не могу, можно ли его программировать или нет? Нет ни кнопки ресета, ни gpio пинов, которые можно было бы закоротить для перехода в flash mode, как просят некоторые туториалы. Все остальные esp8266 чипы имеют больше пинов.
И ещё вопрос. Допустим, я смогу запрограммировать либо его, либо нормальный купив, это ведь никак не повлияет на возможность управлять AT командами, оно там где-то в прошивке же всё находится, верно? Например, просто пустой скетч если загружу.
Хм, в принципе, я же могу прямиком в ножки чипа проводом потыкать за неимением отведённых пинов.
Непропаянный вывод на микрухе, на разъеме юсб, на небе, на Аллахе.
Ты прав, у меня похоже провод сломан. Телефон заряжает, а ардуинку не видит.
Но я так и не понял нихуя, какже Ардуино Иде через тот же Avrdude запускает бутлоадер без замыканий джампера?
Я свой качал с http://www.wch.cn/download/CH341SER_ZIP.html
wch.cn указан в даташите на CH340G
Если он не заработает, ничего не заработает.
Почему данный код не работает?
на ноги 6, 5 подключены кнопки подключенные к 5в.
на максимум 10 секунд, но если я отпущу кнопку то он тут же отключиться. Собираюсь использовать в самодельном вейпе.
если я знаю что макс 3.7, а минимум 2.4
battery = map(analogRead(A5),492,853,0,100);
ну и выводит соответственно в процентах
Нихуя себе там портянка.
Ты, хотя-бы, конкретизируй, что именно не работает.
Это же не школьный пример на паскале, лол.
Попробуй выброси всё лишнее, протестируй кусками, и т.д.
Там один джампер всего, J1, он переводит Про Микро в режим работы от 3 вольт.
ОК, я понял. Ты замыкал пикрелейтед, после программировал AVRку как программатором.
Вангую, что ты поменял загрузчик, вопрос на что и есть ли отдельный загрузчик в 32U4.
Смотри, оригинально AVRки программировались либо через внутрисхемный программатор ICSP (6-8 контактов рядом с микросхемой), либо можно было высоковольтным программатором жарить. Если записать в конец памяти загрузчик, то можно по серийному интерфейсу заставить микросхему саму себя перепрограммировать. Так работала первая Ардуина, подключенная через Ком-порт.
Потом просто добавили FTDI 232 / CH340 конвертер чтобы подрубить его к USB вместо COM.
Потом заебались развлекаться с этим, сделали Atmega 8U4, которая теперь работает как серийный адаптер, а при желании прошивается и прикидывается мышью / клавой. Она же работает аки программатор для основной атмеги 328. Народ начал массово перепрошивать 8u4 и делать джойстики, клавы, мыши и т.п. AVR 8U4 работала как USB-адаптер, а всё остальное делала атмега 328. Потом подумали, а почему бы сразу на одном чипе не делать? Сделали 32U4.
Вот что там внутри я не знаю, скорее всего те же потроха от 328 + 16u4.
Вангую что там обычный загрузчик от ардуины для работы через USB, а если всё похерится, то можно восстановиттся через ICSP.
Думаю, что ты просто прошил на неё целиком образ Arduboy, скорее всего там тот же ардуиновский загрузчик + скетч ардубой + данные игры.
TL;DR: Ты перепрошил атмегу как изначально задумывалось - через внутрисхемное программирование. Просто программатором выступила сама атмега. Раньше для этого использовался либо программатор, либо другая атмега.
Если интересно, посмотри книгу Make: AVR Programming.
>как в терминалах в магазинах для карт банковских.
https://www.electronshik.ru/item/wg320240b0-tfh-nz-2201704
Все существующие решения, которые я нагуглил, отсылают данные на какой-нибудь веб-сервис вроде google charts и берут файл с графиком уже с него.
Неужели так сложно на 8-битном процессоре сформировать картинку небольшого разрешения и запаковать ее в gif/jpg/png для отправки напрямую клиенту?
Почему нет библиотек по упаковке массива точек в эти форматы даже для жирных ардуин с большой памятью, таких как мега и есп8266?
Нет, я замыкал контакты j1, выше чел написал это переключение питания, возможно оно просто сбрасывает контроллер как от замыкания ресета на землю.
логи ардуино выдают такое:
Перезагрузка платы открытием/закрытием порта COM66 на 1200bps
PORTS {COM1, COM3, COM4, COM66, } / {COM1, COM3, COM4, } => {}
PORTS {COM1, COM3, COM4, } / {COM1, COM3, COM4, } => {}
PORTS {COM1, COM3, COM4, } / {COM1, COM3, COM4, COM67, } => {COM67, }
Found upload port: COM67
Так значит шить pro micro можно только несколько секунд после сброса? ведь com67 под название arduino bootloader пропадает и появляется com66 - arduino leonardo
До этого просто не сталкивался с u4, да и вообще пересел на ардуино недавно с codevision avr, где всё прописываешь ручками и нет этих тупых условностей, когда у тебя шим в виде analogwrite есть только на определенных портах, а a6 и a7 работают только как аналоговый вход, это вообще пушка как они так сумели? бля порт же можно в любую сторону включать.
>Неужели так сложно на 8-битном процессоре сформировать картинку небольшого разрешения и запаковать ее в gif/jpg/png для отправки напрямую клиенту?
Для понимания можешь попробовать сделать это на своём 64-х битном процессоре - на питоне или на C - без использования библиотек.
> по упаковке массива точек в эти форматы
Это немножко не так работает.
"Эти форматы" - это уже сжатая картинка.
Рисовать надо не сжатую, потом сжимать.
Памяти надо от 1 бита на пиксель и до упора.
Нормальный вариант - передавать клиенту JSON, и рисовать график на JS уже в браузере.
Либу (JS) можно найти маленькую (чтобы влезла в память ардуины) или написать свою, это не так сложно.
на пикчу надо дохуя рам, можно по идее рисовать графики яваскриптом в браузере из данных в сгенерированной страницу, гугли dygraphs, скорее всего яваскрипт можно грузить со стороннего ресурса, если на их сайте есть.
Я бы даже предложил сделать так, чтобы JS сам запрашивал у ардуины данные в JSON.
Т.е. один раз отдал с ардуины страницу и дальше эта страница сама тянет с ардуиновского веб-сервера свежие данные и рисует график в реальном времени.
Параллельно можно оттуда же сливать данные на Firebase или ещё в какие-нибудь облака.
Короче, вся обработка чтобы шла в браузере.
>>318845
>>318846
Воу воу воу, палехче, я же не буду учить яваскрипт ради одной хоббийной задачи.
>"Эти форматы" - это уже сжатая картинка.
>Рисовать надо не сжатую, потом сжимать.
>Памяти надо от 1 бита на пиксель и до упора.
Это я понимаю, интересует именно тот этап где нарисованную несжатую нужно закодировать в компактный формат. Должны же где-то быть готовые алгоритмы и даже код на С, это же пиздец какая часто встречающаяся задача.
>Время декодирования JPEG 320х240 составляет приблизительно 2-3 секунды.
Причем это на STM32F103. Быстрее будет передавать несжатое изображение. А все потому, что дискретное косинусное преобразование - затратная операция.
Про векторные форматы не слышал? SVG в любом современном браузере вроде бы поддерживается.
>это же пиздец какая часто встречающаяся задача.
Только когда эта задача встречается, берут не атмегу или STM32F103, а что-нибудь с аппаратным декодером или процессор побыстрее.
429 хотя бы. Дма2д, фсмц, вот это всё.
Глянь эти, может подойдёт:
Синий https://ru.aliexpress.com/item/ST7920/32624363605.html
Зелёный https://ru.aliexpress.com/item/ST7920/32667350840.html
Есть ещё белый и мб ещё, но я не видел. По идее, должны быть на контроллере ST7920. К дисплею желательно I2C модуль
https://ru.aliexpress.com/store/product/I2C/1962508_32548282585.html
>>318884
>I2C
ты маленько попутал, эта хуйня работает только с hd44780 контроллерами, которые у знакосинтезирующих дисплеев, там же написано.
люди подключают spi прям напрямую
https://www.drive2.ru/b/451648316560638351/
Интересно, почему я решил что этот модуль подойдёт. Точно помню ещё какой-то модуль расширения, но не тот, что универсальный на ПИКе. Алсо, где-то читал, что и этот дисплей может работать как знакосинтезирующий, но вот самого дисплея в глаза не видел, да, так что с модулем обосрался, запихал зачем-то.
Кажись вот этот модуль имел ввиду, но на Али его не могу найти. И универсальные тоже куда-то пропали. https://www.sainsmart.com/products/spi-128x64-graphic-yellow-lcd-display-with-backlight
А всё, это был роботдиновский модуль. Заметь, I2C. Вот почему перепутал.
https://ru.aliexpress.com/item/MCP23017/32677478419.html
И похоже, что он для KS0108 контроллера.
https://ru.aliexpress.com/item/KS0108/32827814814.html
С библиотекой для ардуины
https://github.com/nickgammon/I2C_graphical_LCD_display
Всё, разобрался сам теперь. Не понял только что насчёт ST7920. И, да, модуль для ардуинщиков как я понял. За такие деньги проще прикрутить другой МК для экономии ног на основном.
Ты схему про микро то глянь, J1 просто закорачивает преобразователь питания. И да, это я же писал. Но там подводный камень, что китайцы часто ставят другие преобразователи. Поэтому хуй поймёт, какое там напряжение должно быть. По идее, если у тебя эта хуйня разомкнута, то это 3.3 В версия. Хотя хз, я брал пятивольтовую, а у меня разомкнуто. Надо смотреть.
И почитай что ли на Спаркфан как её ресетить праавильно, а?
Нужно два раза быстро щамкнуть пины, которые я уже показал.
https://learn.sparkfun.com/tutorials/pro-micro--fio-v3-hookup-guide#ts-reset
Это же будет интерфейс I2C, а вот что засовывать в каждую "лампу"? Там должен быть датчик тепла, три светодиода(rgb), эта вот сенсорная кнопка, и все это должно получать и отдавать ардуинке информацию и иметь свой какой-то адрес. Там еще один контроллер вроде ардуино нано ставить, к которому все это подключать? Или есть варианты еще проще?
Датчики тепла - инфракрасные фотоэлементы из PIR датчиков движения,
сенсорные кнопки - TTP223,
светодиоды WS2812B,
подключать все к одному МК через мультиплексоры портов (с отдельными контроллерами в каждой лампе и их согласованием проебешься на порядок дольше).
а с мультиплексорами есть ограничение на количество портов? Просто у меня этих ламп-панелей будет штук 300...
Получается, что I2C не подходит, у него адресное пространство 8 бит и такое количество устройств туда просто не влезет. Есть какие-нибудь еще варианты?
>у меня этих ламп-панелей будет штук 300...
Давай только без влажных фантазий, спрашивай что-нибудь пореалистичнее.
ладно, 300 или нет, есть какие-нибудь другие протоколы, которые можно использовать тут?
Зачем тебе вообще какой-то протокол? Для чего?
Делай независимые ячейки, и всё.
Только провода питания общие.
Светодиоды лучше типа таких:
https://ru.aliexpress.com/item/50pcs-DC5V-WS2811-IC-RGB-led-Pixel-node-Module-Light-No-Wire-Addressable-12mm-for-led/32794166762.html
https://ru.aliexpress.com/item/100pcs-5V-WS2812B-5050-SMD-RGB-LED-Chip-Built-in-WS2811-IC-Addressable-with-mini-PCB/32657598638.html
Контроллеры - такие:
https://ru.aliexpress.com/item/Attiny-attiny85-Digispark-Kickstarter-Micro-USB-Arduino-IIC-I2C-TWI-SPI/32674596029.html
Остальное - тебе написали уже.
А если надо цвет менять у всех сразу - можно дёргать все по одному проводу. И менять цвет по кругу. Или два провода - цвет и яркость.
Есть обычные осветительные лампы с переменной цветовой температурой. Там просто дёргают питание - раз включил - тёплые, ещё раз - холодные, потом заново.
Продаются конденсаторы 100-400V, есть ли смысл купить их и использовать в своих целях при напряжении 5-30V? Или же кондёр откажется работать в таких условиях?
Разрядка\зарядка будет медленной на малом напряжении или есть еще что-то интересное?
Не откажутся работать, но все равно это хуевая идея, высоковольтные кондеры слишком громоздкие при крохотной емкости.
Сейчас есть пердуину Уно, которая считывает датчик температуры и отправляет в последовательный порт.
Как перекатиться на беспроводную передачу в интернет через tcp на базе esp8622?
void loop() {
if (cap.touched() & (1 << 0)) { Serial.print("1"); delay (500);} //2 в степени 0
if (cap.touched() & (1 << 1)) { Serial.print("4"); delay (500);} //2 в степени 1
if (cap.touched() & (1 << 2)) { Serial.print("7"); delay (500);} //2 в степени 2
if (cap.touched() & (1 << 3)) { Serial.print("*"); delay (500);} //2 в степени 3
}
>точнее (1 << 0) что делает эта запись
Эта конкретно - ничего, лол.
Она там "для красоты".
А (1 << 1) сдвигает 1 влево на 1 : 0001 => 0010
А (1 << 2) сдвигает 1 влево на 2 : 0001 => 0100
И т.д.
Причём, это делается в момент компиляции, т.е. это просто такой способ наглядно записать константу - битовую маску.
Если просто писать число - будет или длинно (в двоичном коде) или не наглядно (в 16-ричном или 10-тичном).
sprintf(buffer, "%05d",zapas); //форматированный вывод в виде 00000
анончики если передать в спринтф значение например 12000 то все ок
а если передать более 32000 выйти за границы интеджер то показывает голиматью
в описании написано что есть флаг длинны не пойму как им пользоваться
http://ru.cppreference.com/w/c/io/fprintf
>32000 выйти за границы интеджер
Это signed short если только, int так-то двух миллиардов вмещает.
Ты целиком свой код покажи, и особенно какого рода "голиматью" отображает. Может ты вообще размер буфера малый выбрал, не оставил место для \0 и поэтому выводится лишняя хрень из памяти.
>>319448
Перечитай ещё раз его ответ. Если ты про оператор &, то это побитовое И. 0110 & 0010 = 0010 (в двоичной системе). Подробнее в гугле.
В итоге - проверяется, какое условие будет истинным (не равным нулю).
Т.е. какой бит (0,1,2,...) в проверяемом числе установлен в 1.
Значения других битов при этом игнорируются.
Тип данных int (от англ. integer - целое число) один их наиболее часто используемых типов данных для хранения чисел. int занимает 2 байта памяти, и может хранить числа от -32 768 до 32 767 (от -2^15 до 2^15-1)
/
int analogValue = 0; // переменная для хранения считываемого значения
char buffer[12]; //переменная строка для вывода форматированного текста 6
void setup() {
Serial.begin(9600); //устанавливаем последовательное соединение
}
void loop() {
long zapas=56000;
sprintf(buffer, "%05d",zapas); //форматированный вывод изначального запаса шахты в виде 00000
Serial.println(buffer); // print as a raw byte value
delay(1000);
zapas=16000;
sprintf(buffer, "%05d",zapas); //форматированный вывод изначального запаса шахты в виде 00000
Serial.println(buffer); // print as a raw byte value
delay(1000);
}
%u--> for unsigned int
%ld--> for long int
%lu--> for unsigned long int
%lld--> for long long int
%llu--> for unsigned long long int
аноны я вроде справился вот так работает
int analogValue = 0; // переменная для хранения считываемого значения
char buffer[12]; //переменная строка для вывода форматированного текста 6
void setup() {
Serial.begin(9600); //устанавливаем последовательное соединение
}
void loop() {
long int zapas=56000;
sprintf(buffer, "%05ld",zapas); //форматированный вывод изначального запаса шахты в виде 00000
Serial.println(buffer); // print as a raw byte value
delay(1000);
zapas=16000;
sprintf(buffer, "%05ld",zapas); //форматированный вывод изначального запаса шахты в виде 00000
Serial.println(buffer); // print as a raw byte value
delay(1000);
}
%u--> for unsigned int
%ld--> for long int
%lu--> for unsigned long int
%lld--> for long long int
%llu--> for unsigned long long int
аноны я вроде справился вот так работает
int analogValue = 0; // переменная для хранения считываемого значения
char buffer[12]; //переменная строка для вывода форматированного текста 6
void setup() {
Serial.begin(9600); //устанавливаем последовательное соединение
}
void loop() {
long int zapas=56000;
sprintf(buffer, "%05ld",zapas); //форматированный вывод изначального запаса шахты в виде 00000
Serial.println(buffer); // print as a raw byte value
delay(1000);
zapas=16000;
sprintf(buffer, "%05ld",zapas); //форматированный вывод изначального запаса шахты в виде 00000
Serial.println(buffer); // print as a raw byte value
delay(1000);
}
char buffer[12]; //переменная строка для вывода форматированного текста 6
void setup() {
Serial.begin(9600); //устанавливаем последовательное соединение
}
void loop() {
long int zapas=56000;
sprintf(buffer, "%05ld",zapas); //форматированный вывод изначального запаса шахты в виде 00000
Serial.println(buffer); // print as a raw byte value
delay(1000);
zapas=16000;
sprintf(buffer, "%05ld",zapas); //форматированный вывод изначального запаса шахты в виде 00000
Serial.println(buffer); // print as a raw byte value
delay(1000);
}
спасибо я кажется понял там считывается с резистивной клавиатуры нажатия кнопки например это кнопка решетка при нажатии мне приходит цифра 2^11, затем справа на лево двигаюсь по числу пока не удостоверюсь что нужный нам бит установлен в 1
>long zapas=56000;
>sprintf(buffer, "%05d",zapas);
unsigned long zapas=56000;
sprintf(buffer, "%05u",zapas);
Лол, в ардуине же int 16-ти битный. Пздц.
Ну, да, всё правильно сделал.
Как вариант - можно было использовать unsigned int - если число от 0 до 65535.
у меня есть светодиоды с общим анодом.
если питать общий на плюс, а остальные - к земле то все работает. если питать общий на плюс, а остальные - к цифровым пинам подавая LOW ничего не работает. почему?
купи шилд v3 к ардуино нано там до поламера с выводов чтоли
LOW
Понятие LOW также имеет разные значения в зависимости от того, как настроен вывод - как вход (INPUT) или выход (OUTPUT). Если функцией pinMode вывод сконфигурирован как вход (INPUT), то при считывании с него данных функцией digitalRead микроконтроллер ответит LOW в том случае, когда напряжение на выводе не превышает 2В.
Если функцией pinMode вывод сконфигурирован как выход (OUTPUT) и функцией digitalWrite на него подан низкий уровень LOW, то на выводе установится напряжение 0В. В этом режиме он может принимать втекающий ток, например от светодиода, подключенного через резистор к +5В либо к другому выходу с уровнем HIGH.
https://onion.io/omega2/
Слабая реклама, Puddle. Все знают, что оно откажется лезть в робота чайник и будет сыпать kernel panic в консоль.
Даже малина с апельсиной нахуй не нужны, если ты не поехавший долбоеб, а уж это говно и подавно.
Когда эти микро пс осилят хотя бы проигрывание бд рипов 1080п, с выводом на дисплей, тогда и приходи. Лет через *дцать
А логеры температуры и ногодрыг "умного" дома можешь засунуть себе в анус и дернуть.
>осилят хотя бы проигрывание бд рипов 1080п
И зачем будет нужно столько проигрывателей?
Мне кажется, проблема, скорее, в том, что железа понаделали, а софта и инструментария подходящего под него нет.
Ибо линукс совершенно не годен под те задачи, под которые эти микро-системы, по идее, заточены.
Кластера он посмотрел
https://www.youtube.com/watch?v=_rUnP6nT67c
А так это говно без задач. У него даже ШИМ не заработал. Пришлось писать модуль ядра.
Ещё и грузится долго как настоящий комп. Хрен знает зачем оно нужно.
>И можно ли добиться больших напряжений на вторичной обмотке?
Напряжение будет ограниченно внутренним сопротивлением батарейки и сопротивлением нагрузки.
я частоту уменьшил искра длиннее стала, в итоге доигрался спалил один мосфет два транзистора, и два трансформатора.
хоть питон хоть какое ещё говно
пофиг, чет ничего не нахожу
все что можно было уже придумали.
"конструкторов" как ты говоришь дохуя есть для робототехники младших классов школы.
а так амперковский структор годная вещь.
Шёл бы ты отсюда, дед, праздники отмечать. Там же ясно написано про гребни 2.54, а ещё если протереть глаза, то можно прикреплённое фото увидеть. Эти коннекторы ущербны везде, и в амперковских тоже. Я знаю, что тебе будут удобны и штепсельные вилки из карболита, но нужно же и о других подумать.
И какую альтернативу ты предлагаешь? 1.25 гребни? Как бутерброды то делать? ПАЯТЬ что ли?
Написал, что не нравятся расчески, так что тебе нравится то? Хотя можешь не отвечать, просто нахуй иди.
>долбоёб отметился
Это, конечно, хорошо, но надеюсь что кто-то поделится своим опытом улучшения конструкции этих шилдов.
кто-то поделиться своим опытом? тут 10,5 анона, 9,5 из которых пока не научились мигать 13-ым.
Что именно там улучшать?
С какой целью?
Напридумывать можно много чего.
Но, стандартные разъёмы хороши именно тем, что они стандартные. И взять их можно где угодно, в любое время.
А по четыре платы в бутерброд собирать не надо, разве что для тестирования.
>покрасивее этих 2.54 расчёсок?
Не манди на 2.54мм гребенки, это охуенно механически выносливый, дешевый и легко перепаиваемый руками разъем с расчетным током до 900мА на каждый пин.
Или сначала предложи недорогие альтернативы, а мы посмеемся.
Разъемы СНП59 неплохие по надежности. Можно что-то похожее у TE Connectivity подобрать.
Если действительно так, то осильте make хотя бы.
нет, мне нужно было добиться того что после 12 сигналов, сбрасывается таймер. Ну так вот когда счетчик доходит до 9 то следующий импульс идет на другую микросхему которая отвечает за десятки, и она же активирует базу транзистора, и когда на первой микросхеме пойдет 2 импульс то все сброситься и первая и вторая микросхемы обнуляться, база закроется, счетчик пойдет считать сначала.
На 32Кб супер много исходников не накропаешь, так что не проблема.
P.S. просто надо было какой нибудь симулятор с CD4017
>языки поддерживает Arduino
Arduino поддерживает машинные коды в формате Intel HEX. Все остальное - среды разработки и компиляторы.
Button = GetButton();
switch(Button)
{
case 1 :
break;
case 2 :
break;
case 3 :
break;
default :
break;
}
Button = 0;
Спасибо, няш
Этот формат связан с AVR только тем образом, что используется в программах для прошивки микроконтроллера. Никакой привязки именно к этому формату нет и быть не может. Какие-то форматы появляются только когда прошивка сохраняется в файл. В памяти микроконтроллера байты лежат без какого-либо форматирования. Поэтому высказывание про HEX - бред.
Пора наверное валить из /ra/. Чтобы какой-то ардуинщик, не знающий ассемблер и не написавший ни одного бутлоадера, задвигал мне всякий бред? Нахуй надо.
>на серьёзных щах с ардуинщиком не знающим и далее по списку
>бежать с радача из-за разговора с вышеуказанным
Сейчас это все работает, данные состояния текут так:
ардуино > serial > ноутбук > питон программа передает в интернет на сервер
Купил вот esp8266 чтобы вычленить лишние serial ноут питон. Экономия энергии, и провода лишние, да и ноут нужен в разных местах дома.
Вопрос такой. Как организовать передачу данных с arduino через esp8266 в интернет. Можно хоть tcp, хоть post запрос на php.
160мгц ващет
ну допустим, и какой командой отправлять tcp запрос через эту хуйню?
Знаю что на атмегах можно поднять частоту ШИМ
А как это сделать на есп?
Использую arduino ide, если что
Ебать, с 16 года, лол сука, я не видел даже, думал тред свежий
в связи с этим вопрос: нахуя столько пердуино тредов? Какой легитимный?
Ну ебаный в рот, ну почитай референс к arduino core, стандартная функция изменения частоты шима же.
Впрочем, с мотором вряд ли это тебе поможет, возможности ЕСПшки в плане ШИМ весьма скромны.
Дк, в ардуинах же атмега, значит то что прокатит с ней не прокатит с есп.
А на аттини 13 можно поднять эту частоту каким-то образом? Читал где-то что до 37кГц можно поднять.
Если можно то я бы связал еса и тиню, и получил желаемое
Oх, ебать, анон, спасибо за подсказку, я и не знал про arduino core, нашел там много полезного, правда про шим не нашел.
добра тебе:3
https://withinspecifications.30ohm.com/2014/02/20/Fast-PWM-on-AtMega328/
>So, without delay here is a sample code you can load to your Arduino Uno or directly to an AVR, which will give you a 250KHz, 6 bit resolution PWM on pin 3 (ATmega pin 5) and a 8MHz, 1 bit resolution —thus only 50% duty cycle— on pin 5 (ATmega pin 11). The duty cycle of the 250KHz PWM is rolling.
анон, ты лучший, спасибо
Воткнул тебе ненужный паялник в пердоле, ручкой вперед, подключенным к сети.
Гребенки на ардуину соплями крепишь?
Ах да, ты поди и готовую, спаянную заказал?
Я тебе что, быдло заводское, чтобы ПОЯТЬ? Я покупаю готовые ШЫЛДЫ с гребёнками, которые ВТЫКАЮТСЯ друг в друга, этаж за этажом! Ну, если совсем припрет сделать КАСТОМНЫЙ девайс, не имеющий аналогов, то труъ-ардуинщики используют беспаечную БРЕД-БОРДУ. И ардуины берут только полноценные, ПОЛНЫЙ ФАРШ, а не какие-то огрызки.
Ну, не сразу ж на плату всё пихать, сначала и поиграться нужно, временно всё подключив торчащими всюду проводами.
Если да, то как через тот программатор можно выяснить подключён ли мк к нему или нет, мб прога существует
Подойдёт.
Второй вопрос слишком абстрактный, чем конкретно ты выяснять собрался? Пробуешь прошить, если выдаёт ошибку, значит не подключен, лол.
Ну смотри, если я подключаю к компу мышь или клаву, то появляется уведомление, а есть ли то же самое, но для мк?
Ты не подключаешь мк к компьютеру напрямую. Ты подключаешь к компьютеру программатор, а уже к программатору мк.
Скажи что ты хочешь получить, а то хуйню какую-то спрашиваешь. Есть, к примеру, мк с юсб, типа atmega32u4, они могут подключаться к компьютеру напрямую.
В общем, avrdude ругался, что не может с чипом связаться. Потом я случайно заметил, что чип охуенно так нагрелся, обжигая пальцы. Отрубил, перепроверил, затем, видимо, подключил как надо. После этого avrdude нормально загружает hex файл, проверка памяти успешно. Однако, светодиод просто горит всегда, потому что у меня со всех пинов 2.8 вольт. После первой успешной прошивки, вроде как, светодиод горел то ярко, то не очень, но гораздо медленне, чем код указывал (несколько секунд вместо 0.5), потом это исчезло.
Я спалил 2 доллара или что-то ещё может быть не так? Новый уже заказал.
Поигрался ещё: код, выполняется, в EEPROM пишется/читается нормально, PORTB значение меняет, однако, как только пытаюсь выставить регистр DDRB на выход, код перестаёт работать (по крайней мере, eeprom больше не обновляется). Либо если поставлю brown-out fuse на выше, чем 1.8В, то опять ничего не происходит, хотя питается-то он как бы пятью. Ну, значит, точно сломалось что-то внутри.
хочу сделать подсветку на ардуино из светодиодной ленты.
какую посоветуете ленту, нужны драйвера/реле?
в этом деле пока не особов ардуино.
Да я бы с удовольствием, но он приедет только через несколько дней, поэтому вот и насиловал его до конца.
Какую у тебя роль конкретно исполняет ардуина?
Но плата на 407 выглящит охуенно, куча gpio, microsd, rtc, jtag и т.д. У меня даже встал!
Не ебу. Я брал в Терре натюрлих STM32F429-Discovery
всё, не надо
Батенька, тебе в архив -> https://2ch.hk/ra/arch/2018-04-19/res/258237.html (М)
> Внешний кварц, например?
Да, без него не запустится.
> Как их шить? Можно ли не имея прошивальщиков, шить используя ардуину как usb-uart конвертер?
В классическом варианте говне мамонта - нет. Параллельный программатор нужен с поддержкой этой некрофилии, или же самому делать ROM эмулятор на SRAM, в который снаружи чем-либо будешь заливать код и запускать на выполнение, указав что начало кода во внешней памяти, а не во внутренней.
Так что быстро и решительно свалил из треда со своим 8051 на свалку истории.
>а ещё они питаются родным и знакомым пятивольтовым напряжением
Это недостаток.
>всё-таки выходов у них порядком
Количество выводов может и более-менее большое, но с периферией плохо.
>скорость вроде бы неплохая
Скорость в чем измеряется? В махах в секунду за секунду? Как бы в атмегах команды выполняются за 1-2 такта, а в старых 8051 12-24 такта.
>Есть ли тут те, кто имел дело с такими штуковинами?
Тут был тред, но он утонул.
>Можно ли не имея прошивальщиков, шить используя ардуину как usb-uart конвертер?
Настолько старые 8051 программируются только через параллельный программатор. На атмеге несложно сделать такой программатор.
В общем использовать конкретно эти микроконтроллеры нет смысла. Если хочется именно с системой команд 8051, то можно попробовать силабовские или еще какие-нибудь.
Но ты же ардуинщик, ты ничего не осилишь.
А где транзисторы?
> И транзисторы должны быть строго из одной партии, чтобы открыввлись ровно одновременно.
Псс.. Парень.. Полегче..
Параллелятся только полевые транзисторы. С биполярниками такое нельзя делать (можно осторожно попробовать, добавив в коллектор/эмиттер по низкоомному резистору(около 1 Ома).
http://www.kondratev-v.ru/eto-prigoditsya/parallelnoe-vklyuchenie-tranzistorov.html ).
Есть ли тут страдающие по BLE на ESP32?
Суть в том, что я хочу сымитировать один беспроводной контроллер, но наткнулся на пару штук.
У меня:
- после инициализации BLEDevice автоматом создаётся GenericAccess сервис, и подцепиться к нему я не могу, потому что нихуя не понимаю, откуда он вылезает (исходники либ смотрел, вроде неоткуда, ну а эспрессифовская документация слегка ой)
- хорошо, создаю другой GenericAccess и он стоит рядышком с DeviceName и Appearance, а вот в PeripheralPreferredConnectionParameters нихуя никаких значений не записывается - стоит пустая характеристика и фсио
- ну и PnPID в сервис DeviceInformation не прописывается вообще - на сканере сервисов всё есть, а его нету
Соответственно, возможно, по этой причине, возможно, нет, девайс контроллер не видит, хотя нужную кнопку "жму", и вроде кроме этого всё посылаемое сымитировал правильно.
Алсо, есть ли смысл попытаться перекатиться с ESP32 на какой-нибудь HM-10, подключённый к пердуине?
Смогу ли я там создать с нуля GenericAccess и прописать PnPID?
Обоссыте, пожалуйста, где я мудак.
В тему вкатился только позавчера, так что, возможно, пытаюсь прописывать то, чего не надо или даже то, чего нельзя.
>BLE на ESP32
Сложно понять без исходников, где ты обосрался.
Посмотри здесь во 2-й части http://www.iotsharing.com/2017/07/how-to-use-ble-in-arduino-esp32.html
Я через BLE либы пишу, а не обращаюсь к девайсу напрямую.
Ну т.е.
#include <BLEDevice.h>
#include <BLEServer.h>
#include <BLEUtils.h>
#include <BLE2902.h>
Затем:
void setup() {
BLEDevice::init("XXXXXXXX"); // GenericAccess DeviceName
mainServer = BLEDevice::createServer();
и вот тут уже GenericAccess создаётся автоматом.
Другой генерикакцесс я создаю так:
BLEService *genAttributeService = mainServer->createService("00001801-0000-1000-8000-00805f9b34fb");
...
connParametersChar = genAttributeService->createCharacteristic( "00002a04-0000-1000-8000-00805f9b34fb", BLECharacteristic::PROPERTY_READ);
connParametersChar->addDescriptor(new BLE2902());
и вот этот connParametersChar, который я потом наполняю через:
uint8_t pnpArray[7] = {2,21,25,221,223,1,0};
pnpIDChar->setValue(pnpArray,7);
ваще пустой стоит.
Ну и до кучи PnPID делается у меня через:
pnpIDChar = deviceInformationService->createCharacteristic("00002a50-0000-1000-8000-00805f9b34fb", BLECharacteristic::PROPERTY_READ);
pnpIDChar->addDescriptor(new BLE2902());
Я через BLE либы пишу, а не обращаюсь к девайсу напрямую.
Ну т.е.
#include <BLEDevice.h>
#include <BLEServer.h>
#include <BLEUtils.h>
#include <BLE2902.h>
Затем:
void setup() {
BLEDevice::init("XXXXXXXX"); // GenericAccess DeviceName
mainServer = BLEDevice::createServer();
и вот тут уже GenericAccess создаётся автоматом.
Другой генерикакцесс я создаю так:
BLEService *genAttributeService = mainServer->createService("00001801-0000-1000-8000-00805f9b34fb");
...
connParametersChar = genAttributeService->createCharacteristic( "00002a04-0000-1000-8000-00805f9b34fb", BLECharacteristic::PROPERTY_READ);
connParametersChar->addDescriptor(new BLE2902());
и вот этот connParametersChar, который я потом наполняю через:
uint8_t pnpArray[7] = {2,21,25,221,223,1,0};
pnpIDChar->setValue(pnpArray,7);
ваще пустой стоит.
Ну и до кучи PnPID делается у меня через:
pnpIDChar = deviceInformationService->createCharacteristic("00002a50-0000-1000-8000-00805f9b34fb", BLECharacteristic::PROPERTY_READ);
pnpIDChar->addDescriptor(new BLE2902());
BLEDevice::init("MyESP32");
BLEServer pServer = BLEDevice::createServer();
BLEService pService = pServer->createService(SERVICE_UUID);
BLECharacteristic pCharacteristic = pService->createCharacteristic(CHARACTERISTIC_UUID,
BLECharacteristic::PROPERTY_READ |
BLECharacteristic::PROPERTY_WRITE );
pCharacteristic->setValue("Hello World");
pService->start();
BLEAdvertising pAdvertising = pServer->getAdvertising();
pAdvertising->start();
фикс
BLEDevice::init("MyESP32");
BLEServer pServer = BLEDevice::createServer();
BLEService pService = pServer->createService(SERVICE_UUID);
BLECharacteristic pCharacteristic = pService->createCharacteristic(CHARACTERISTIC_UUID,
BLECharacteristic::PROPERTY_READ |
BLECharacteristic::PROPERTY_WRITE );
pCharacteristic->setValue("Hello World");
pService->start();
BLEAdvertising pAdvertising = pServer->getAdvertising();
pAdvertising->start();
Короч, перед pServer, pService, pCharacteristic, pAdvertising еще звездочи нужны (*)
Посмотри здесь http://www.instructables.com/id/ESP32-BLE-Android-App-Arduino-IDE-AWESOME/
Похоже, твой код. И тебя или библиотеки встали неправильно, или UUID уже используется
Спасибо за советы, но я нашёл, где я обосрался (не в этом).
И обосрался снова.
Глядите, я вытащил с устройства обе apkшки, которые отвечают за соединение, и, сравнив с тем, что мне показывает adb logcat, дошёл до вот такой вот интересной хуйни.
Судя по всему (вернее, по отсутствию логирования после), у меня фэйлится всё вот на этом этапе.
Сперва девайс-сайд софт вытаскивает manufacturer specific data через стандартное андроидовское scanResult.getScanRecord().getManufacturerSpecificData(0);
Затем проверки (не буду копипастить, так как реверс-инжиниринк):
- если не null
- если вернулось 2 байта
- если первый байт равен Byte.MIN_VALUE (т.е. -128)
- если второй байт равен нулю
, то всё идёт дальше.
Окай, я зделяль
static uint8_t manufacturerData[2] = {-128, 0};
static esp_ble_adv_data_t emu_data = {
.set_scan_rsp = false,
.include_name = true,
.include_txpower = true,
.min_interval = 0x06,
.max_interval = 0x09,
.appearance = 0x00,
.manufacturer_len = 2,
.p_manufacturer_data = manufacturerData,
.service_data_len = 0,
.p_service_data = NULL,
.service_uuid_len = 16,
.p_service_uuid = service_uuid128,
.flag = (ESP_BLE_ADV_FLAG_GEN_DISC | ESP_BLE_ADV_FLAG_BREDR_NOT_SPT),
};
, ну а потом esp_ble_gap_config_adv_data(&emu_data); в setup()
Всё равно не коннектится.
Скажите, пожалуйста, есть ли какое-нибудь приложение, хоть на пека, хоть на ведроид, которым я мог бы проверить эту manufacturerData?
Волнуюсь за -128 в uint'e (а не uint в структуре нельзя).
Спасибо за советы, но я нашёл, где я обосрался (не в этом).
И обосрался снова.
Глядите, я вытащил с устройства обе apkшки, которые отвечают за соединение, и, сравнив с тем, что мне показывает adb logcat, дошёл до вот такой вот интересной хуйни.
Судя по всему (вернее, по отсутствию логирования после), у меня фэйлится всё вот на этом этапе.
Сперва девайс-сайд софт вытаскивает manufacturer specific data через стандартное андроидовское scanResult.getScanRecord().getManufacturerSpecificData(0);
Затем проверки (не буду копипастить, так как реверс-инжиниринк):
- если не null
- если вернулось 2 байта
- если первый байт равен Byte.MIN_VALUE (т.е. -128)
- если второй байт равен нулю
, то всё идёт дальше.
Окай, я зделяль
static uint8_t manufacturerData[2] = {-128, 0};
static esp_ble_adv_data_t emu_data = {
.set_scan_rsp = false,
.include_name = true,
.include_txpower = true,
.min_interval = 0x06,
.max_interval = 0x09,
.appearance = 0x00,
.manufacturer_len = 2,
.p_manufacturer_data = manufacturerData,
.service_data_len = 0,
.p_service_data = NULL,
.service_uuid_len = 16,
.p_service_uuid = service_uuid128,
.flag = (ESP_BLE_ADV_FLAG_GEN_DISC | ESP_BLE_ADV_FLAG_BREDR_NOT_SPT),
};
, ну а потом esp_ble_gap_config_adv_data(&emu_data); в setup()
Всё равно не коннектится.
Скажите, пожалуйста, есть ли какое-нибудь приложение, хоть на пека, хоть на ведроид, которым я мог бы проверить эту manufacturerData?
Волнуюсь за -128 в uint'e (а не uint в структуре нельзя).
-128 в uint'e становится тупо равен 128.
Охохонюшки.
Походу, учиться мне пересобирать .apkшки из декомпилированных исходников.
Анон, недавно я купил себе вот такие ардуинки: https://ru.aliexpress.com/item/1PCS-Promotion-Funduino-Nano-3-0-Atmega328-Controller-Compatible-Board-for-Arduino-Module-PCB-Development-Board/32531372300.html?scm=1007.16891.96945.0&scm_id=1007.16891.96945.0&scm-url=1007.16891.96945.0&pvid=a17be3b0-1ce2-4cec-8b71-397a244064f7&_t=pvid:a17be3b0-1ce2-4cec-8b71-397a244064f7,scm-url:1007.16891.96945.0
На атмеге 328p. Припаял гребенки. А как их прошивать? Для этого должно хватить usb-кабеля и avrdude, или нужен внешний программатор? Когда я прошивал STM32, с этим проблем не было, потому что на плате был программатор, который позволял загружать бинари просто подключив плату через usb.
Шильды от ардуины для управления сервоприводами подойдут?
Можно ли подключить к юсб порту вебкамеру и транслировать её съёмку через вайфай шильд в реальном времени?
1. Лента питается от 5V. На данный момент от БП провод идёт к 5V на ардуино и на вход ленты. Вопрос такой, что происходит с выходом 5V, когда ардуино подключено к USB?
2. Что, собственно, произойдёт, если одновременно подавать с БП 5V и подключать к USB?
>There is bootloader installed in it
Там уже всё прошито, среда ардуино сразу заработает от юсб, только драйвер для CH340G загугли и установи сначала, потом ардуина как ком порт должна появиться после подключения.
>Вопрос такой, что происходит с выходом 5V, когда ардуино подключено к USB?
На нём питание появляется, юсб порт будет питать и ардуину и устройство на этом выходе ардуины.
>Что, собственно, произойдёт, если одновременно подавать с БП 5V и подключать к USB?
В теории должны сложиться мощности питания юсб порта и блока питания, как при параллельном соединении двух элементов питания из учебника физики. На практике не знаю, стараюсь такого избегать.
>только драйвер для CH340G загугли и установи сначала, потом ардуина как ком порт должна появиться после подключения
Я сижу под ArchLinux, и с драйверами для ch340/ch341 проблема. Я пробовал несколько версий этих драйверов, и половина из них даже не собралась под современную версию ядра, а оставшиется не заработали. После подключения платы к USB команда dmsg не показывает ничего о новом устройстве. Что делать с этими драйверами?
>В теории должны сложиться мощности питания юсб порта и блока питания, как при параллельном соединении двух элементов питания из учебника физики.
Ты бы ссылку дал на такой учебник, а то что-то сильно сомнительно. Как минимум из-за разного внутреннего сопротивления не получится.
>Ты бы ссылку дал на такой учебник
Ты как маленький прям
http://at-systems.ru/quest/new-quest/battery-par-ser-connection.shtml
>>322875
>Что делать с этими драйверами?
Под прыщи среда ардуино есть ли? Ты ж на си писать поди собрался? Тебе ISP программатор нужен и закидывать прошивки напрямую. Он копеечный на али. Вообще гугли как прошивать микроконтроллеры ARM под линух.
У тебя по ссылке складываются емкости, а не мощности. Это вовсе не одно и то же.
К тому же это не учебник физики, а вредные советы от людей впаривающих какую-то ерунду.
>Под прыщи среда ардуино есть ли?
Она на джаве, нет никаких причин ей там не быть. А даже если бы и не было, то можно взять ардуиновский препроцессор отдельно.
Слушай, я ради тебя гуглить не буду. Помню что в школе проходили что при последовательном соединении ип складывается напряжение, при параллельном ток. И это пиздец как давно было, у меня в голове сидит как аксиома.
>при параллельном ток.
Правильно проходили, это первый закон Кирхгофа. Осталось еще закон Ома применить и получить ответ.
Из-за любой небольшой разницы напряжений и внутренних сопротивлений источников напряжений эти токи будут сильно отличаться. Причем может получиться так, что через более слабый USB пойдет больший ток. Поэтому нельзя соединять два разных (за исключением специально приспособленных) блока питания параллельно, в надежде что их мощности сложатся.
Поскольку вы, пидары, не захотели мне помочь, пришлось разбираться с этой библиотекой:
https://github.com/neu-rah/ArduinoMenu
В частности вот в этом примере
https://github.com/neu-rah/ArduinoMenu/blob/master/examples/SSD1306Ascii/SSD1306Ascii/SSD1306Ascii.ino
есть код, который отвечает за передачу вывода на дисплей и выглядит для меня как черная магия
//describing a menu output device without macros
//define at least one panel for menu output
const panel panels[] MEMMODE={{0,0,128/fontW,64/fontH}};
navNode nodes[sizeof(panels)/sizeof(panel)];//navNodes to store navigation status
panelsList pList(panels,nodes,1);//a list of panels and nodes
idx_t tops[MAX_DEPTH]={0,0};//store cursor positions for each level
SSD1306AsciiOut outOLED(&oled,tops,pList);//oled output device menu driver
menuOut constMEM outputs[] MEMMODE={&outOLED};//list of output devices
outputsList out(outputs,1);//outputs list
Мне, для создания няшных менюшек, не хватает возможностей библиотеки SSD1306AsciiOut. Можно ли подключить другую гарфическую библиотеку? Еще есть трабл с отрисовкой меню: при переходе в подменю экран не очищается от текста главного меню, если подменю не занимает все строки экрана. Как это можно профиксить?
Вторая часть магии находится здесь:
https://github.com/neu-rah/ArduinoMenu/blob/master/src/menuIO/SSD1306AsciiOut.h
class SSD1306AsciiOut:public menuOut {
public:
SSD1306Ascii device;
inline SSD1306AsciiOut(SSD1306Ascii o,idx_t *t,panelsList &p,menuOut::styles s=menuOut::minimalRedraw)
:menuOut(t,p,s),device(o) {}
size_t write(uint8_t ch) override {return device->write(ch);}
void clearLine(idx_t ln,idx_t panelNr=0,colorDefs color=bgColor,bool selected=false,status stat=enabledStatus,bool edit=false) override {
setCursor(0,ln,panelNr);
for(int n=0;n<maxX();n++) print(' ');
setCursor(0,ln,panelNr);
}
Это не ардуинщик, а залётное одноклеточное типа веб-макаки. Тут будет как в басне про мартышку и очки.
Обосрался - прикинься STMовцем ( в ардуинотреде).
Чванливое, самовлюблённого мудачье, не способное написать работающий из коробки код, ЕТО ТЫ??
Подскажи правильную.
Так-то библиотека вроде норм, бесит только что мне не хватает функционала под мой экранчик. Но чтобы добиться большего похоже придется учить С/С++. А мне бы сейчас не хотелось бы на этом зацикливаться.
>придется учить С/С++.
А ты сейчас на каком языке пишешь?
Я хоть и не ардуинщик, но все же выскажусь. В такой библиотеке мало смысла. Меню без собственно вывода графики - это меньше сотни строк. Ты будешь дольше разбираться с чужим кодом, чем писать сам.
Ну простейшие вещи я понимаю, хотя я праймари питонодебил.
Не, там вроде все просто, если не требовать дополнительного функционала кроме того, что идет из коробки. Вывод графики (в виде текста) там через либу SSD1306Ascii
>SSD1306Ascii is an unbuffered character only library for small OLED displays like the Adafruit 1.3" and 0.96" Monochrome displays.
То есть там поддреживается только вывод текста. Я же хочу инвертировать цвета при выборе пункта меню как на пике >>323150
Пробовал направлять вывод через adafruitGfxOut
>Use graphics screens (adafruit library based) as menu output
По аналогии с этим примером:
https://github.com/neu-rah/ArduinoMenu/tree/master/examples/adafruitGfx/lcdMono
Но скетч выжирает всю память (даже если компилировать этот пример ничего не меняя) и нихуя не работает.
Пока что эта либа - лучшее из того что я видел
https://github.com/neu-rah/ArduinoMenu
Все еще разбираюсь, но выглядит довольно удобной. Есть поддержка кучи разных девайсов и экранов.
>SSD1306
>библиотека
>просит помочь с менюшками
ХУЯССЕ! Ну лови.
https://pastebin.com/XBt9RVrU
https://pastebin.com/aWHKMLKR
Справишься - молодец. Не справишься - ну и фиг с тобой.
Сам писал? Не знаю насколько мне пригодится, но спасибо за помощь. Хотелось бы использовать более generic way запила менюшек. А ты реально любишь switch я смотрю
менюшка-кун
Тебе? Не пригодится, пока ты не поймёшь, что писать надо самому. Как решишь самостоятельно писать - пригодится.
Switch - очень функционален, когда тебе необходимо организовать менюшки и реакции на нажатия кнопок.
Ведь в обоих вариантах получаем 1.1в, так нахуя мне этот делитель?
Ололо ньюфаг.
Разница есть и огромная. Внутреннее опорное напряжение может сильно плавать от температуры (см даташит), а во вторых - при внутреннем опорном 1.1В - можно максимум 1.1В намерять. Подав больше 1.1 вольта на вход АЦП - увидишь максимальное число. Соединив aref с питанием можно мерить до 3.3вольт сигнал. Если задрачиваться с точными измерениями - всякие источники опорного напряжения в помощь (например MCP1525 на 2.5В).
Так что определись с максимальным измеряемым напряжением - его делаешь опорным и получаешь профит в виде полного использования шкалы АЦП, не теряя ее начало или конец (с очень малыми сигналами не действует, тк есть минимальное значение опорного напряжения для работы ацп).
Это цветомузыка, там для аудио сигнала 1.1в как раз. Просто все что нагуглил это про бОльшую точность внешнего источника и что внутренний гуляет в пределах ~0.2в, я правильно понимаю что внутренний источник устанавливает напряжение с этой погрешностью, но далее при работе, перезагрузке оно остается таким же? В даташите на нашел про температуру и внутренний ион, но у меня 85 тинька на ней делаю, потому и ног больше надо никогда не грелась даже до теплой
Вот и наебали. По даташиту(на attiny 25/45/85), стр 167-169 раздел "21.7 ADC characteristics" минимальное входное опорное напряжение 2В в любых вариантах включения, тк что соснешь с внешним опорным напряжением 1.1В (если верить даташиту).
Так же внутреннее напряжение заявлено от 1 до 1.2В или от 2.3 до 2.8В. По идее измерить какое там реально напряжение можно проверить через компаратор подключенный к опорному напряжению и снаружи подавать изменяемое напряжение и посмотреть когда компаратор переключится.
Есть ардуино уно, хочу приобрести к ней мотор шилд как на пике 1 и эзернет шилд как на пике 2. Можно ли будет их сложить трехслойным бургером?
Вопрос, если питать напрямую от акккума без повышайки измерения будут пиздеть? И надо ли будет ставить диоды/оптрон между динамиками и ардуиной чтоб не спалить аруину\усилок?
Зелененький, Хоть бы схемы шилдов для анализа приложил. Легкое гугленье говорит что максимум с выводом CS (JHIGH:3) могут быть проблемы.
DE10-Nano спешит на помощь в борьбе с малым числом ног, медленным ядром и заменой кучи рассыпной логики.
Я не знаю, что и как анализировать. И то, что ты написал, тоже филькина грамота :С
Вообще вопрос снят, я внезапно вспомнил, что у меня на ноутбуке нет эзернет порта, и нагуглил, что устройством, которое я задумываю, будет удобнее управлять через юсб.
Очевидно что езернет шилд ставят только когда планируют управлять через интернет, только в 2018 уже никто так не делает, т.к. есть копеечная esp8266.
Учти что управлять по юсб ты тоже будешь через виртуальный com порт, а ардуина будет принимать команды по uart. Гугли сразу как парсить поток данных с последовательного порта. Ну и как бы, тебе придётся писать приложение для компа, которое работает с com портом.
Если же разберёшься с esp8266, то всё управление можно сделать на веб-морде через интернет и есть куча инфы как это делается, возможно это проще будет для тебя.
Я веб-макака вообще, управлять собирался через https://github.com/node-serialport/node-serialport (с клиентом на реакте).
На контроллере считывать управляющие сигналы по http://wiki.amperka.ru/js:serial (да, я вас наебал, у меня не ардуино уно, а искра жс в форм факторе уно).
Но вообще твой микрочип меня заинтересовал, посмотрю, спасибо большое.
Ещё нубовопрос, если сама плата запитана от блока питания (а не юсб), то к мотор шилду отдельное питание подводить не нужно?
Не похуй ли откуда идёт ток? Если диод горит, значит с питанием всё в порядке, а обосрался ты или с движком или с резистором.
Возможно мотор слишком мощный, контакты ардуино 40мА максимум могут, если я правильно помню. Нужно через драйвер мотора подключать или транзистор хотя бы.
>то к мотор шилду отдельное питание подводить не нужно?
Хуй знает, схема нужна. В теории у моторов должно быть отдельное питание, но китайцы могли и общее с ардуиной сделать, тогда не нужно. На шилде явно есть отдельный мощный вход для питания моторов, может там переключатель есть какой-нибудь или перемычка для выбора.
Перемычка есть, да. Но вопрос не о том, вычитал, что если запитать ардуину + мотор шилд + два шаговых движочка через юсб, то этот самый юсб обрубит питание из-за перегруза. Если юзать блок питания, то такого дерьма не случится?
Считай сам миллиамперы. Сколько там твои шаговики потребляют под нагрузкой, ищи характеристики.
USB2 может 500мА, USB3 900мА, но бывают специальные мощнее. От внешнего блока питания надёжней, но у тебя будет конфликт питаний usb и блока питания. Так что либо всё от usb, либо ардуина от usb, а шилд от блока питания.
Нет, конфликта не будет, ибо я уже заказал предложенный выше вайфай модуль. Спасибо за ответы.
Как гуглить пластиковые насадки на валы шаговиков, как на пике? Я не ебу, как с такого вала снять мощность.
Это шаговик, твой шиелд таким не сможет управлять, он для обычных моторов и серв.
А, ну ок, значит можно изъебнуться. Ну там вал 5мм диаметром и 3мм в плоской части, ищи "gear 5mm" с винтиками чтоб затянуть на вал.
Блэт, их ещё и хер найдешь. Ладно, для прототипа сделаю колхозные насадки из фанеры с помощью сверла и напилинга.
На 3d принтере нет возможности напечатать? На thingiverse полно обвеса под этот мотор.
Поспрашивай в треде печати, может кто-то из анонов согласится тебе пару деталек выслать.
Напечатаю, когда потестирую прототип и буду заказывать для него корпус и детальки. Спасибо за помощь, анон!
>есть копеечная esp8266
А у меня глупый вопрос по ней. Как общение esp и ардуины обычно идёт у нормальных людей? Просто через Serial используя AT команды?
https://pastebin.com/VS4c4ZrS код, на А0-А5 вход с датчиков влажности, на 2-6 питание датчиков если долго держать включёнными во влажности, корродируют, мрази. Серва, переключающая, куда вода будет литься, на 9, а на 8 через мосфет погружная помпа, которую кидать в банку с водой и радоваться. Опрашивает датчики раз в час. Время полива на каждый горшок можно менять, как и их количество для меги и нано, у меня уно с 6 аналоговыми входами и пять горшков, поэтому и датчиков пять. Всё остальное в комментах в коде.
И да, я знаю, что говнокод, но работает и оптимизирован вроде бы на заебись.
А, ну и да, это ещё не обкатано на реальном обвесе, его достану в ближайшее время и уже на нём все показатели протестирую.
Да у тебя прямо работа мечты нахуй.
Ну давай покодим вечерком.
Вариант - использовать BLE, но это уже ESP32, может люк не пробить, да и если у тебя павербанк там насос питает, то на день хотспота должно хватить.
Спасибо, анон. Такой комплект пойдет?
https://ru.aliexpress.com/item/12V-WIFI-Relay-Module-ESP8266-IOT-APP-Remote-Controller-2-Channel-For-Smart-Home-mobile-Phone/32842734092.html
http://www.chinalctech.com/index.php?_m=mod_product&_a=view&p_id=1262
Насчет питания не беспокойся, если надо, то будет ставться аккум от танка.
Работа wi-fi из-под люка проверялась, работает.
Давай зделаем препродакшн, прежде чем выбирать комплекты.
На первом уровне абстракции давай рассматривать всё это устройство как чёрный ящик, который мы вот махнули волшебной палочкой и сделали.
Данные он по-любому выдаёт на смартфон, тут и к гадалке не ходи.
Через что? Варианта три:
- BLE - самый щадящий на батарейку, но может люк не пробить и нужно пэйрить, да и батарейка у тебя не вопрос
- Wi-Fi - пользователь либо коннектится к сети устройства и потом идёт на адрес в ней браузером или приложением, либо на смартфоне пользователя хотспот, а устройство раз в пятнадцать-тридцать секунд пытается его поймать
- GSM - каждое устройство через дешёвый GSM-модуль периодически шлёт данные на сервер (заряд, говно, состояние подсветки), где их забирает по интернетам (тому же 4G) приложение на смартфоне; в этом же приложении есть кнопачка "включить подсветку на 10 минут"
GSMный вариант самый такой интересный, но это вопрос к твоему начальству, стоит ли экономия на поездках газели свеч.
Окай, спускаемся на уровень пониже.
Нам нужны:
- пердуинка/пердуиносовместимое что-то
- выбранный для связи модуль (возможно, интегрированный, как в случае с ESP12)
- модуль RTC с батарейкой (потому что тебе важна периодичность, а при замене аккума как минимум время потеряется, а EEPROM не резиновый на перезапись)
- реле для управления насосом
- пара-тройка светодиодов (или реле для включения китайского LED-фонарика от того же павербанка)
- продуманная компоновка всего этого в каком-нибудь корпусе, потому что влажность, говно и роняние устройства на землю неиллюзорно
В теории на устройство надо бы приспособить какой-нибудь OLED-экранчик для диагностики, и ты его приспособишь на тестовом устройстве, но "серийная" хуитка должна выйти достаточно дешёвой чтобы "Не фурычит? Хуй с ним, сейчас другую поставим, а эту отвезём."
Продумай метод подключения и весь проект с этой точки зрения, и будем делать bill of materials.
Застрахуй от затопления свою квартиру и квартиру соседей снизу, прежде чем приступать к таким экспериментам, сис.
Потому что коррозия датчиков неминуема рано или поздно, а после нее тотальный залив всего и вся. Отключение тока на датчиках только отсрочит неизбежное.
Еще раз спасибо, анон. Это студенческий проект в рамках конкурса "Дорогу молодым дебилоидам", которых много сейчас. Дидлайн - через месяц, так что мне надо сваять из говна и палок что-нибудь работающее. Мой руководитель-старпёр предлагает вообще обойтись без пердуинок пиками и релейками. Но чует моя жопа, что обосрусь при таком подходе. В наличии есть повербанк китайский 20к мА/ч с выходом 12 В, насос 12В 500 мА и канистра 20 литров. Нет только мозгов для всего этого. Влажность и говно защиту уже придумал в виде пластикового бокса для дошика, спиздил у мамки. Короч, беру с али esp8266 с 2-мя реле.
GSM - не вариант, по ДС таких точек отбора ~18k, это столько же контрактов с операторами надо?
>GSM - не вариант, по ДС таких точек отбора ~18k, это столько же контрактов с операторами надо?
Один. Корпоративные контракты заключаются сразу на кучу номеров с общим балансом.
Между прочим, GSM модули есть уже в каждом масковском автобусе/троллейбусе/трамвае (см. яндекс-транспорт) и во многих автобусных остановках, где интерактивное табло показывает. Можешь прикинуть сколько это ебаных тысяч симок, и ничего, работает не первый год уже.
ОК - посмотрю GSM. Или что порекомедуешь?
Посмотрел https://ru.aliexpress.com/item/RCmall-2-SMS-GSM/32854693105.html
Дораха! И как его программировать?
AVR-GCC C++ компилирует. Я думал использовать некоторые библиотеки, написанные для Arduino для компиляции avr. То есть самому схему собрать и программатором прошить микроконтроллер. Поэтому спросил про совместимость. Вдруг библиотеки для Arduino не совместимы с обычным C++?
Попутно возникли вопросы:
1. Как проще померять уровень заряда powerbanka, чтобы отдать по wi-fi?
2. Как хранить логи работы в esp8266, которые не пропадают после снятия напряжения?
Я не понел, ты концепт собираешь или собрался на свои деньги все 18к комплектов закупать? Или тебе задали какой-то лимит по стоимости оборудования?
А программировать там надо контроллер STM32, принципиально не отличается от прошивания ардуины или есп.
Я не такой уж программист. Там про то, что скомпилированные бинарники будут необоснованно больше, чем должны быть в идеале? И немного больше памяти съедается?
GSM - уже пройденный этап, в том смысле, что его уже применяли в Мосводостоке, и он почему-то не взлетел. Тем более, это немного другая организация, Мосводосток - заказчик.
По стоимости есть лимит, после которого дешевле поставить узбека, черпать говнецо черпаком. Там и так набегает по стоимости сверху вниз: повербанк, насос, пердуина, контейнер для пердуины, контейнер для говнеца, шланг, крючок
Вроде как про то, что разные механизмы адресации классов в С++-для ардуины и классической avr и нужен плагин для компиляции.
Но ведь Arduino и есть avr.
Чтобы повниманиеблядствовать в треде. Однажды даже видел мемчик, посвященный комментам в тянском коде, который целиком описывает текущую ситуацию.
Во-первых, просто интересно, во-вторых, что ты мне сделаешь, я в другом городе, в-третьих, потому что это позволяет решать довольно прикольные задачи, а делюсь я этой хуйнёй потому что если есть какая-то пригодившаяся мне хуйня, то она может пригодиться и кому-нибудь ещё.
Я уже думала над этой проблемой, и весьма вероятно, что нихуя. Есть несколько разной степени анальности решений (вроде EasyVR3, пара китайских говноплат к которым ты хуй найдёшь, как их не то, что обучать, а даже подключать), но лично мне ни одно из них не подошло. Мне тоже надо голосовое распознавание, но довольно сложное, так что я лучше возьму малинку и буду красноглазить нормально со всем этим работать.
Думал насчёт малины, но чет дорого слишком выходит. Хотел всё по-минимуму сделать. Тем более, что мне нужно две с половиной команды
Ну тогда смотри в сторону стрёмного китаеговна. По типу """VOICE RECOGNITION MODULE V3""" (одно название уже навевает мысли о сладком хлебушке, да?)) или LD3220.
Короче, можно ли выдрать из каталога IDE нормальный тулчейн и оставить библиотеки, чтобы компилить маленьким тулчейном мои быдлоскетчики и прошивать ArduinoISP программатором, и всё работало? Желательно с командной строки. Или как-то на WinAVR надеть библиотеки и Wiring, чтобы опять же не переписывать быдлоскетчики на C++? Как сделать?
Нахуй тебе ардуинобиблиотеки при таком подходе, они же для инвалидов и изначально предназначены для использования в ИДЕ? Пиши на нормальном libc. Устанавливаешь отдельно гнутый тулчейн для avr (avr-gcc, avr-libc, avr-binutils) и avrdude, всё. Avrdude умеет шить в ардуину через ардуиновский бутлоадер, тупо USB-шнурком. Можно и ISP, если он у тебя есть. Код пиши хоть в виме. Всё пашет из соснолечки.
Поизучаю данное дело, но желательно чтобы возможность генерировать ардуиноговнокод всё же осталась. Я дебил, неспособный запомнить названия регистров и как с ними работать, для меня слова типа ADCSRA и TCNT0 это чистая ахинея. Мне удобнее хуйня типа shiftOut()
Btw, digitalWrite на макросы Cyberlib заменяю.
Неправильный подход. Зубрить регистры бесполезно. Ладно еще в AVR относительно мало регистров, а если будет тысяча регистров? Тем не менее люди как-то справляются без заучивания регистров.
Вполне возможно, что ардуиновский препроцессор уже давно переписали на cmake (это система сборки такая). Хотя если ты регистры не осилил, то cmake тем более не для тебя.
Завтра уже сегодня сгоняю и куплю шланг, перепишу код, проверю работоспособность системы и сфоткаю.
ЖиЕсть
отследи по дорогам куда они идут - если сразу в единственную залитую микрушку то только в ручную разгребать и прикручивать какойнить драйвер типа HT1621 или подобный - зависит от того сколько там сегментов - его уже и дергать твоей андурилой.
еслиже идет на отдельную микрушку - то можно попытаца погуглить на нее даташит мож чего полезного и найдеш
можно ли соорудить арудино самому их подручных запчастей или лучше в таком случаи начать c ARM
Конечно можно. Но зачем? Покупаешь атмегу, регулятор напряжения, мешочек резисторов, конденсаторов и индуктивностей, кварц и вперёд, паять.
ARM-то тут при чём вообще? "Можно ли сделать велосипед самому или лучше начать с катера?"
>от 3.3 В может быть изменен по регулировка JP3 соединения по умолчанию + 5 В, а затем-3.3 В, затем C4 C5
Канадский полярных Конденсатор модель
Чтобы 106A или 104а, с подсветкой сопротивления 33 3.3 В Европе в ЕС
так вот жампер я и отпаивал и запаивал в другую сторону, и нихуя, конденсаторы запаял и напряжение на Vout поднялось с 3 до 6 вольт, однако всё равно нихуя
На форумах пишут надо отрицательное смещение для контраста при низком напряжении, но как оно тут получается?
Подстроечник подключен между vout и gnd, пробовал между vcc и vout и тож тишина. джампер тож в разных вариантах пробовал
подскажите помогите.
Почитай тогда немцев в оригинале, умник хуев, раз умеешь
https://www. mikrocontroller.net/topic/433669
ладно, я сзади мелкий подстроечник подкрутил и кое-как словил положение, в котором экран горит, правда недостаточно контрастно, так что отбой.
Вот есть у меня RTC на DS1307, попробовал их в работе, залив пример, который отправляет ответ с часов на сериал порт. Вот как только дело доходит до какого-либо практического применения этих данных, начинаются проблемы. Serial.println(t.sec); (min, hour и т.д.) возвращает строку, которую ты не можешь не поделить, ни умножить, ничего. Полез в интернет - получил ответ в виде голого .toInt(), без примера как его использовать. Я вот ни кодер ни разу, и не знаю, как эти дела применять. Накидайте какой-нибудь пример в виде x = t.sec.toInt(); , только в правильном виде.
>>2-х беспроводных датчиков
>А как ты без проводов собрался считывать на ардуине?
В этом то и сложность
Как бы получается 3 пердуины, у каждой BT/wi-fi модуль, инфа с 2х передается первой.
Шо, так нельзя ?
Пришла плата на ESP32, точное название хрен найдешь, то ли ESP-WROOM-32 или ESP32 Core Board V2, ESP32 DevKitC? а вот бредборд еще не дошел, но я все равно решил поиграться, ну вот на второй вечер замкнул GND и 3.3v нах такие выводы по соседству пихать, короче поночалу красный светодион стал гореть тускло и плата не виделась на пека, через пару минут и светодиод перестал загораться. Я так понимаю, что я проебал что-то в цепи питания? проверил обвиденным зеленым диод, вроде норм, может кто подсказать что заменить/закоротить?
схема наверно эта https://dl.espressif.com/dl/schematics/ESP32-Core-Board-V2_sch.pdf
Ты замкнул 3.3в, выдаваемые преобразователем питания, и он сгорел к хуям от перегруза. Надо его заменить, это та самая трехногая штуковина в корпусе SOT-223 справа от обведенного зеленым диода.
Ноуп, стабилизатор цел, навернулся таки диод который я позванивал, походу навернулся не до конца, на стабилизатор поступало 2,5 вольта вместо 5, уже заменил его на соплю припоя) за неимением нормального паяла и чесания рук.
Если это 1117 то они не горят от перегруза. Я со своим игрался, он снижает напряжение, когда разогревается. Я светодиод мощный подключал, он секунду горел нормально, потом 2 тускло, потом опять нормально и так в цикле.
Ардуинщик 80 левела мигает светодиодом даже без использования ардуины!
Изич, делаешь буфер-массив как обычный дисплей, туда всё загоняешь и сдвигаешь, а потом масками вычленяешь из столбцов строки и загоняешь их столбцами в новые массивы на каждую матрицу свою.
Но это пиздец такой пердолинг, жырно и медленно.
И ведь рядом лежит такая же сборка, и на ней всё в порядке.
Тупо редефайню адреса столбцов по кругу, в любую сторону.
Может нуегонахуй, распилить и повернуть?
Три пердуины при живой библиотеке для BME280 в NodeMCU. Грустно это.
>128x32 OLED
Работает, кстати, как от 5V, так и от 3.3
То есть, работает если питание на ардуину подается по USB
А если питаю плату от 18650, то OLED нихуя не работает
Хотя напряжение на пине 3v3 такое же
Всё, я разобрался
Нужно было просто дописать:
Wire.begin();
Wire.setClock(400000L);
Спасибо, чан!
Температурный коэффициент смотри, он в инициализации. Хотя, это же дуина, куда я со своими знаниями лезу?.. Смотри примерно такие строчки
PCD8544_SendByte(SENDCOMMAND, POWERON_EXTENDED_INSTRUCTIONS); // настройка питания, адресации и инструкций
PCD8544_SendByte(SENDCOMMAND, 0b00000100 | Value); // настройка температурного
PCD8544_SendByte(SENDCOMMAND, POWERON);
#define POWERON 0b00100000
#define POWERON_EXTENDED_INSTRUCTIONS 0b00100001
Подставь резистор на ногу, отвечающую за контраст
По питанию я его особо не ковырял, только пробовал подключать без подтягивающего резистора, да и сомнительно что он вообще мог бы сгореть от 3.3в и того сранаго тока который бы выдала еспешка сама при этом не сгорев.
Ему питание нужно. Долго колупался записывая от юсб порта ноута пытаясь прочитать ром пока от зарядника не запитал.
Сделал html файл и залил его в файловую систему esp266
на esp веб-сервер.
Как мне теперь открыть этот файл?
Т.е мне нужно набрать в браузере адрес esp и на экране должна появится моя страничка.
нашел подобное на ютуб, но там никто нихрена не объясняет как работает именно этот момент.
https://www.youtube.com/watch?v=BuuUtePAEgQ
8266*
Некая частная компания (резидент Сколково), приперла на пустырь, где располагался пункт приема вторсырья стенд с ЖРД на паре перекись-водорода+керосин c катализатором (самовоспламеняющиеся компоненты) запустила его, и после 4х секунд работы — стенд взорвался. В результате один человек (не причастный к процессу) пострадал.
Читая подробности, я наткнулся на одно ключевое слово. — ардуино.
Немного повангуем.
Нет, непосредственно в этом случае, ардуино не причем — но в этой компании оно увы применялось. Поэтому наверно стоит подробнее рассказать, про эти раковые опухоли современного ембедеда — ардуино, рабсбери ПИ и тп падаль…
Когда я учился программированию на МК у меня было три вещи: Описание архитектуры МК Intel MCS48 (книжка), тетрадка в клетку и ручка… Все! Никаких компьютеров! Никаких IDE! МК конечно у меня тоже был. 1816ВЕ35 — он в фольгу завернутый лежал на полке. И пока он там лежал — я составлял программы в этой тетрадке (в правом столбце), я компилировал их тоже в тетрадке (в левом столбце), я набирал скомпилированный по книжке результат в кодах, в интерфейсе программатора микросхем 573РФ2, которую стирали ультрафиолетом, потому, что в тот момент компания Intel еще не изобрела такую популярную хреновину, как технологию "Flash" — т.е. вообще не изобрела и никому не продала на нее лицензии… И в этой же самой тетрадке я декомпилировал чужие программы — восстанавливал их алгоритмы. Так я учился — меня никто не учил… Месяцы прошли от момента когда впервые я смог "замигать светодиодиком", но к тому моменту я знал архитектуру MCS48 на уровне работы каждой каждой ассемблерной команды и функции каждого пина, да что там — я знал внутреннее устройство компилятора. (и это потом позволило мне написать его, когда он понадобился под совсем другую архитектуру)… Потом уже был компьютер — там были кросс-средства программирования. Все стало намного быстрее.
Первоначально конечно идея ардуин была великолепная — научить детишек программированию на микроконтроллерах. Для этого детишкам предлагалась дешевая отладочная плата с готовым набором программного обеспечения, позволяющая уже буквально после 1-го двух дней обучения, получать некоторый практический результат в виде тех же "мигающих светодиодиков". Решение задачи предполагалось на готовых "кирпичиках", как в конструкторе лего — но кирпичики эти складывались в среде arduino-IDE. В результате дети учились решать задачи, не понимая в их решении ничего вообще — абстрактный квадратик делал какую то магию и на выходе светодиодик мигал… Если нужна была другая магия — нужен был другой квадратик. Как работают квадратики не понятно — все это скрыто в многочисленных слоях абстракции. Некоторые познания в алгоритмах позволяли создать свой квадратик — но готовых было столько, что это просто не было нужным. Какой микроконтроллер какая у него архитектура — не важно. Процессы обучения не шли на этом уровне. В итоге получались не программисты встраиваемых систем а "программисты ардуин"… Настоящим волшебником можно конечно было стать, только вырвавшись за пределы всех слоев абстракции, только понимая на всех уровнях как это работает. Однако лишь считанные единицы из тех кто стартовал, смогли пройти этот путь.
Объективно убрать слои абстракции могло бы заставить достижение предела по памяти или ресурсу. Но зачем — ведь индустрия при возникновении этих проблем, вам тут же предложит "более мощную ардуину" — больше выводов-памяти-быстродействия и так до бесконечности. до рабсбериPI
Но проблема ардуинок все же возникает не на этом уровне — естественно когда тебе три года, ты вываливаешь из коробки деревянные кубики и складываешь их в слова, и это нормально… Но если тебе 18, а ты все еще играешь теми самыми деревянными кубиками — это уже серьезный повод наблюдаться у психиатра. А суть в том, что именно так в реальном мире и происходит. Ведь в институте., заведении, где как известно преподают те, кто сами ничего делать не умеют, исключая редких пенсионеров, нашему великовозрастному олигофрену на ПРОФИЛЬНЫХ факультетах — так же суют ардуинку… Ну а что, это же удобно! Вот готовое железо. Вот готовые задания. В результате на выходе мы имеем не простого олигофрена — а дипломированного олигофрена ардуинщика. Дальше начинается АД. Сейчас из каждого радиоприемника начинают петь, как делать на ардуино ответственные промышленные системы, холодильные установки, установки по управлению технологическими процессами — в том числе завязанные на жизнь людей, некоторые даже предлагают пихать этот шлак в спутники и ракеты… Что дальше? Ядерные реакторы на ардуинах?!
С каждым новым холодильником на ардуине я все более хочу купить контейнер белорусской тушенки и закопать ее в тайне от всех где нибудь в сибири — в вечной мерзлоте. Так. На всякий случай.
Настоящий разработчик — многостаночник. Он умеет проектировать печатные платы. Выбирать контроллер согласно параметрам и цене исходя из требуемой задачи. Проектировать схемы целевых устройств. Для него вообще не составляет проблем нарисовать для любого контроллера схему минимально необходимой обвязки, выбрать средства программирования, написать инициализацию и поддержку всей необходимой периферии прочитав даташит на целевой МК, подобрать подходящий метод заливки прошивки (ISP-BOOT-прямое программирование чипа в программаторе)… И ведь это самые самые азы! Если ты не умеешь этого — ты никто. И зачем настоящему разработчику сторонняя плата для обучения в детском саду?!
Так всего одно слово, сразу опустило целую компанию в моих глазах на уровень детского сада.
(а еще они в сварку аргоновую не могут — но это совсем другая история).
Некая частная компания (резидент Сколково), приперла на пустырь, где располагался пункт приема вторсырья стенд с ЖРД на паре перекись-водорода+керосин c катализатором (самовоспламеняющиеся компоненты) запустила его, и после 4х секунд работы — стенд взорвался. В результате один человек (не причастный к процессу) пострадал.
Читая подробности, я наткнулся на одно ключевое слово. — ардуино.
Немного повангуем.
Нет, непосредственно в этом случае, ардуино не причем — но в этой компании оно увы применялось. Поэтому наверно стоит подробнее рассказать, про эти раковые опухоли современного ембедеда — ардуино, рабсбери ПИ и тп падаль…
Когда я учился программированию на МК у меня было три вещи: Описание архитектуры МК Intel MCS48 (книжка), тетрадка в клетку и ручка… Все! Никаких компьютеров! Никаких IDE! МК конечно у меня тоже был. 1816ВЕ35 — он в фольгу завернутый лежал на полке. И пока он там лежал — я составлял программы в этой тетрадке (в правом столбце), я компилировал их тоже в тетрадке (в левом столбце), я набирал скомпилированный по книжке результат в кодах, в интерфейсе программатора микросхем 573РФ2, которую стирали ультрафиолетом, потому, что в тот момент компания Intel еще не изобрела такую популярную хреновину, как технологию "Flash" — т.е. вообще не изобрела и никому не продала на нее лицензии… И в этой же самой тетрадке я декомпилировал чужие программы — восстанавливал их алгоритмы. Так я учился — меня никто не учил… Месяцы прошли от момента когда впервые я смог "замигать светодиодиком", но к тому моменту я знал архитектуру MCS48 на уровне работы каждой каждой ассемблерной команды и функции каждого пина, да что там — я знал внутреннее устройство компилятора. (и это потом позволило мне написать его, когда он понадобился под совсем другую архитектуру)… Потом уже был компьютер — там были кросс-средства программирования. Все стало намного быстрее.
Первоначально конечно идея ардуин была великолепная — научить детишек программированию на микроконтроллерах. Для этого детишкам предлагалась дешевая отладочная плата с готовым набором программного обеспечения, позволяющая уже буквально после 1-го двух дней обучения, получать некоторый практический результат в виде тех же "мигающих светодиодиков". Решение задачи предполагалось на готовых "кирпичиках", как в конструкторе лего — но кирпичики эти складывались в среде arduino-IDE. В результате дети учились решать задачи, не понимая в их решении ничего вообще — абстрактный квадратик делал какую то магию и на выходе светодиодик мигал… Если нужна была другая магия — нужен был другой квадратик. Как работают квадратики не понятно — все это скрыто в многочисленных слоях абстракции. Некоторые познания в алгоритмах позволяли создать свой квадратик — но готовых было столько, что это просто не было нужным. Какой микроконтроллер какая у него архитектура — не важно. Процессы обучения не шли на этом уровне. В итоге получались не программисты встраиваемых систем а "программисты ардуин"… Настоящим волшебником можно конечно было стать, только вырвавшись за пределы всех слоев абстракции, только понимая на всех уровнях как это работает. Однако лишь считанные единицы из тех кто стартовал, смогли пройти этот путь.
Объективно убрать слои абстракции могло бы заставить достижение предела по памяти или ресурсу. Но зачем — ведь индустрия при возникновении этих проблем, вам тут же предложит "более мощную ардуину" — больше выводов-памяти-быстродействия и так до бесконечности. до рабсбериPI
Но проблема ардуинок все же возникает не на этом уровне — естественно когда тебе три года, ты вываливаешь из коробки деревянные кубики и складываешь их в слова, и это нормально… Но если тебе 18, а ты все еще играешь теми самыми деревянными кубиками — это уже серьезный повод наблюдаться у психиатра. А суть в том, что именно так в реальном мире и происходит. Ведь в институте., заведении, где как известно преподают те, кто сами ничего делать не умеют, исключая редких пенсионеров, нашему великовозрастному олигофрену на ПРОФИЛЬНЫХ факультетах — так же суют ардуинку… Ну а что, это же удобно! Вот готовое железо. Вот готовые задания. В результате на выходе мы имеем не простого олигофрена — а дипломированного олигофрена ардуинщика. Дальше начинается АД. Сейчас из каждого радиоприемника начинают петь, как делать на ардуино ответственные промышленные системы, холодильные установки, установки по управлению технологическими процессами — в том числе завязанные на жизнь людей, некоторые даже предлагают пихать этот шлак в спутники и ракеты… Что дальше? Ядерные реакторы на ардуинах?!
С каждым новым холодильником на ардуине я все более хочу купить контейнер белорусской тушенки и закопать ее в тайне от всех где нибудь в сибири — в вечной мерзлоте. Так. На всякий случай.
Настоящий разработчик — многостаночник. Он умеет проектировать печатные платы. Выбирать контроллер согласно параметрам и цене исходя из требуемой задачи. Проектировать схемы целевых устройств. Для него вообще не составляет проблем нарисовать для любого контроллера схему минимально необходимой обвязки, выбрать средства программирования, написать инициализацию и поддержку всей необходимой периферии прочитав даташит на целевой МК, подобрать подходящий метод заливки прошивки (ISP-BOOT-прямое программирование чипа в программаторе)… И ведь это самые самые азы! Если ты не умеешь этого — ты никто. И зачем настоящему разработчику сторонняя плата для обучения в детском саду?!
Так всего одно слово, сразу опустило целую компанию в моих глазах на уровень детского сада.
(а еще они в сварку аргоновую не могут — но это совсем другая история).
Очередное нытье очередного старого пердуна, который чувствует себя не нужным. Вот когда я учился забивать мамонта, мамонты даже еще не появились1, я просто совал дубину в пизду товарища и представлял, что это ебучий шерстяной слон Замечательно, но нахуя я это прочитал? Не неси сюда такое.
>Сколково
Этим все сказано.
>Ведь в институте., заведении, где как известно преподают те, кто сами ничего делать не умеют, исключая редких пенсионеров, нашему великовозрастному олигофрену на ПРОФИЛЬНЫХ факультетах — так же суют ардуинку…
Это где конкретно такое?
В институте, в котором я учился, до сих пор учат ассемблер PIC18.
Ты хоть понимаешь, что тут преимущественно ардуино-дети? Смысл тут это писать?
>воскресенье в Москве у русских "Илонов Масков" взорвался ракетный двигатель
Этой новости скоро 2 года https://habr.com/post/399895/
Двачую и текст твой, господин эстонец, спизжен с хабра тоже
Мне тоже приходил пучок DS18B20 в гильзах, внутри гильзы оказались транзисторы 2N2222. Деньги вернули молча, хватило одних фотографий.
А в нормальном DS18B20 выводы прозваниваются между собой? у меня вообще ничего не перезваниваться, может там вообще тупо провода в трубке залиты без ничего...
https://users.livejournal.com/---lin---/406023.html
Хех, у них был пидоршкинский промышленный контроллер ГОВЕН, очередной аналогов нет который проебал все данные, даже пердуина с таким бы справилась.
> контроллер ГОВЕН
> даже пердуина
Яхуею, делают ЖРД, а с авркой не совладали, схватили "пром" ПЛК.
Просто эпичнейшее комбо. Взорвался стенд с двигателем, а вместе с ним хвалёный говен, инженеры, СМИ, диванные войска, и вот наконец взорвался даже какой-то дед (я знаю, что это паста) >>326956 поливая говном ардуинщиков (нашёл крайних, лол, мог бы просто шаблонно высраться про окоянную мОлодеш) что даже в ардуинотред на двощах прилетели брызги говна. Проиграно в голосину.
480x268, 0:22
[code]
#include <OneWire.h>
OneWire iButton(8); // создаём объект 1-wire на 8 выводе
void setup (void) {
Serial.begin(9600);
}
void loop(void) {
delay(1000); // задержка 1 сек
byte addr[8]; // массив для хранения данных ключа
if ( !iButton.search(addr) ) { // если ключ не приложен
Serial.println("No key connected..."); // сообщаем об этом
return; // и прерываем программу
}
Serial.print("Key : ");
for(int i = 0; i < 8; i++) {
Serial.print(addr, HEX); // выводим побайтно данные ключа
Serial.print(" ");
}
Serial.println();
iButton.reset(); // сброс ключа
}
[/code]
480x268, 0:22
[code]
#include <OneWire.h>
OneWire iButton(8); // создаём объект 1-wire на 8 выводе
void setup (void) {
Serial.begin(9600);
}
void loop(void) {
delay(1000); // задержка 1 сек
byte addr[8]; // массив для хранения данных ключа
if ( !iButton.search(addr) ) { // если ключ не приложен
Serial.println("No key connected..."); // сообщаем об этом
return; // и прерываем программу
}
Serial.print("Key : ");
for(int i = 0; i < 8; i++) {
Serial.print(addr, HEX); // выводим побайтно данные ключа
Serial.print(" ");
}
Serial.println();
iButton.reset(); // сброс ключа
}
[/code]
Как правильно и в каком порядке расставить плавкие предохранители, самовосстанавливающиеся предохранители, TVS-диоды, варисторы, стабилитроны, защитные диоды, X и Y конденсаторы, LC-фильтры, ферритовые кольца.
Как удобнее всего в кустарных условиях экранировать схему от помех, организовать резервное питание, как проводить нагрузочное тестирование всех этих защит.
Наверняка такого исчерпывающего источника в приложении к микроконтроллерам нету, поэтому давайте соберем полезную инфу и выложим пастой в шапке!
Где купить такую ебу? Устал от ардуино-кала на стм32 перекатываются.
Ардуина у тебя в голове.
Вот что тебе мешает сейчас программировать свою пердуину без пердуино-иде на Си или ассемблере? На пердуиновской плате всего лишь стоит микроконтроллер AVR и переходник USB-UART.
> есть где-нибудь практичкская инфа о том, как сделать свою ардуинную махарайку надежной и защищенной?
>>327668
> DCDC power supply allows power input voltage from 9 to 30V DC thus making it possible to take virtually any power supply adapter on the market, and to enable applications which are in the industrial power supply of 24VDC.
> Carefully selected, all of the components work reliably in the INDUSTRIAL temperature range -25+85C so the board can be used in INDUSTIRAL applications.
> ULTRA LOW POWER voltage regulators and the consumption is only few microamps, which enables hand-held and battery powered applications.
> Li-Ion rechargeable battery power supply option with a BUILD-IN on board charger, so that when you attach a battery, it is automatically charged and kept in this state until the other power source (USB or external adapter) is removed and then it will AUTOMATICALLY power the board - no jumpers, no switches!
> Works both on 3.3V and on 5V which can be selected with a switch, so 3.3V and 5V shields can be used
> UEXT connector which allows many existing modules like RF, ZIGBEE, GSM, GPS to be connected
> Allows RTC - Real Time Clock.
NOISE IMMUNE design, there are number of threads on Arduino forum for problems with the RESET when the board works with motors - this is because Atmel recommendations were omitted in the original design, we fixed this.
> Separate voltage regulator for the Analog part, which allows the ADC to be read correctly without the digital noise pickup.
> Optionally if someone needs higher precision and temperature stability in Analog reading, we have provided an Aref precise source.
>NOISE IMMUNE design, there are number of threads on Arduino forum for problems with the RESET when the board works with motors - this is because Atmel recommendations were omitted in the original design, we fixed this.
Что-то особенное или "отключить bor припаять кап"?
Схема https://www.olimex.com/Products/Duino/AVR/OLIMEXINO-328/resources/OLIMEXINO-328-schematic.pdf
Проверяйте сами - выполнены рекомендации или нет:
1. Add in a low pass filter for the AVCC pin - a simple LC filter (15uH, 10nF) as recommended by Atmel - this will also enable more accurate ADC readings...
2. read AVR040 & AVR042 - it's not commonly known that the /RESET pins on most AVRs is not ESD-protected in the same way as all other I/O pins - its almost impossible to find this out in the data sheets - its very obtuse indeed. A small diode (1N4148) with a 4k7 resistor to VCC, and a 4n7 cap to ground would help greatly (assuming you're not using HV programming). In addition, leaving space for a small zener between GND & /RESET would allow it to be easily added in very high noise environments.
Еще из разряда Must read:
http://arduino-info.wikispaces.com/Arduino-Project-Planning-Electrical
https://arduino-info.wikispaces.com/ArduinoPower
https://arduino-info.wikispaces.com/RelayIsolation
Тянуть не буду, такой вопрос: Как можно посылать и считывать аналоговый сигнал разной "высоты" одной платой пердуинки? Т.е. грубо говоря пинN на выход, а пинM на вход. Посылаем 200 на N, считываем ~200 на М.
Пробовал на Pro Mini:
к 8-битному выходу цеплял проводок, другой конец шел на аналоговый вход, результат HIGH\LOW;
8-bit<=>8bit выдавал странные сигналы, от 350 до 600 без прямой зависимости от "высоты" сигнала на выходе;
Ну, а аналог<=>аналог выдает лишь HIGH\LOW...
Вообще идея реализуема?
Я нихуя не понял, но для преобразования аналогового сигнала используется АЦП микроконтроллера.
Примеры наверняка есть в сети, документация - на сайте производителя.
Эмм, а зачем его превращать обратно в аналоговый, если ты его не менял? о_О
С этим поможет ЦАП, формула преобразования будет обратной формуле АЦП.
Доки и примеры никто не отменял.
Есть куча стульев:
1 - Интегрирующая RC цепочка на ШИМ выводе (http://easyelectronics.ru/kondensator-i-rc-cepochka.html )
2 - Covox / R2R ЦАП (http://easyelectronics.ru/parallelnyj-cifro-analogovyj-preobrazovatel-po-sxeme-r-2r.html )
3 - Ставить внешние SPI/IIC/параллельные/прочие ЦАП (например SPI MCP4921 )
4 - Цифровой потенциометр (например MCP41010 или AD5263)
Все очень сильно зависит от задачи и надо смотреть применимость каждого варианта. Просто посмотреть что и как - проще будет с 1 вариантом (интегрирующая RC цепочка).
Вот... о чем-то на подобии первого я и думал...
Ибо 8-битный выход дает все же импульс, заряд которого копится до момента его считывания с аналогово...го язык сломаешь входа, что и дает те самые значения 300+ из ниоткуда. Ладно, попробую.
Бобра, анонче!
БЕЗ RC цепочки ничего не выйдет. Вывод практически мгновенно переключается из 0 в 1 и из 1 в 0.
"Если сконфигурировать ножку контроллера на выход — с нее можно снимать либо VCC, либо 0. И это замечательно, потому что никаких других уровней напряжения в цифровом мире просто не существует."
https://old.grakovne.org/supply_1/
>>328069
Сосачь хелп я тупой.
Есть Один Токарный с трехфазным мотором на 2.2 кв рассчитанный на 380, запускаемый с пусковыми кондерами 350 мкф 400 вольт и в данный момент отключаемыми по мех. таймеру.
Задача :сделать так чтобы кондеры отключались по достижению мотором определенных оборотов и использовать для этого ардуину с датчиком холла и нормальноразомкнутое твердотельное реле нормальнозамкнутого я не нашел замыкаемое сразу при запуске и размыкаемое по достижению оборотов Х.
Вопрос: можно ли подключать реле напрямую к ардуине как на пике и вообще несколько жизнеспособна будет такая конструкция ?
Реле это обычная оптопара+симистор+снаббер. Учитывая наличие опторазвязки, пердуине ничего не сделается.
Но сама затея странная - коммутировать конденсаторы симистором. Сам я ничего в трехфазных движках не понимаю, но не припомню чтобы натыкался на подобные решения. Возможно это неспроста.
Я сам хз что там будет и не погорит ли все это добро ибо не знаю сдюжет ли реле и сколько там вообще ампер накопиться. Реле планирую ставить туда где на рисунке кнопка
Симистор для этой задачи не годится, он не выключится на чисто емкостной нагрузке. Использовать реле или контактор.
ЗОЧЕМ?! Я хочу из приложения, написанного на чистых плюсах, например выключить светодиод и тп.
Заранее спасибо за ретвит, ньюфаг в деле.
Так. Ты хочешь с пеки контролить светодиод?
Проще всего тебе будет слать команды в серийный порт, а на ардуине их слушать.
Звучит легко.
А купишь ESP8266 (ESP12F например), так вообще по вайфаю сможешь. И ардуина нахуй не нужна.
Как на чистом Схх не используя сторонних библиотек это сделать? Обязательно ассемблерные вставки делать?
Никак, можно только на чистом си.
Странные вопросы у тебя. Еслиб ты мог в чистый си, ты бы не спрашивал.
Гугли как на твоих сях в серийный порт слать данные. И как на ардуине реагировать на полученные данные из серийного порта.
Си херовый язык. Юзаю Паскаль - uses serial; ser := seropen(/dev/pts/3); serwrite(ser, 'ass', 3);
>uses serial; ser := seropen(/dev/pts/3); serwrite(ser, 'ass', 3);
int fd = open("dev/pts/3", O_RDWR | O_NOCTTY);
write(fd, "ass", 3);
Разница прям упасть не встать.
ПС
Паскаль - уебанство
Паскаль богов.
Ты заёбешь. Ты вообще гуглить не можешь? Как ты в си собрался залезть?
https://www.arduino.cc/en/Serial/Read
Хочу повелевать тремя сервоприводами
Вбиваешь на ютубе "как работает резистор" и смотришь. И так для каждой непонятной детали.
>ютубе
Пиздос, смотреть всяких пидаранов по 30 минут, нахуй. Тескст наше все. Божечки, как же погромирвание хоть на Java хоть на C++, ООП, алгоритмы, ИИ и прочее изи по сравнению с этим вашим электроебством...
Если бы он мог в текст, он бы даже не спрашивал. Пошел бы книгу прочитал.
А мы будем дальше на ютубе смотреть.
Книгу Хороховица и Хила рекомендую. В лабиринте закажи, правда там из двух совковых томов один пидорашкенский сделали и допустили кучу опечаток. Но книгу читать ещё можно. Там же несколько дороже двухтомник Титцешенко можно взять. Ебля с электроникой доставляет удовольствие сравнимое с байтоебством.
Искусство схемотехники я не осилил, сложна. Нет чего нибудь типа серий для Чайников или за 21 день? Накачал книг по Ардуино но там или код разбирают, который мне не проблема, или перемычки втыкают не разбирая электроебные детали.
Датчики Виглеб.
Ну и ты знаешь Дэвид и Сара Хариусы Цифровая схемотехника и архитектура компьютера.
Ещё забыл была книга Сид Катцен Микроконтроллеры, там про пики 8-битные понятно и с опечатками для начинающих долбоебов
Несерьёзно. Майк Предок 123 эксперимент по робототехнике, тогда загугли. У Майка все книги хороши.
Во что-то типо этого:
https://www.ebay.com/itm/SD-to-MicroSD-Card-Extension-Cable-PRICE-INCLUDES-VAT-and-INVOICE/113111548484
втыкаешь что-то типо этого:
https://www.ebay.com/itm/Palm-P10952U-Wi-Fi-Card-SDIO/131733019397
Любым USB-TTL
По первой сцыле это удлинитель, по второй да, тапа этого, но там вафля в корпусе это лютые наводки и перегрев и само устройство не очень популярно. Но вот этот фавлепередатчик да, я хотел бы зделоть сам.
Ребенок, туда ли ты зашел?
Собственно эта штука может работать единственным образом - как переходник для флешки (карты памяти или отдельной микросхемы), выполняющий дополнительно функции файлового сервера. Практически для флешки можно использовать последовательные интерфейсы - SDIO либо SPI (обычно со снижением скорости) для карты памяти и QUAD SPI для отдельной микросхемы. Из-за меньшей розничной цены и более простого монтажа целесообразнее использовать карты памяти. Значит нужен микроконтроллер или готовая плата с вайфаем, приемником (ведомым, slave) SDIO и ведущим SDIO или хотя бы SPI.
Короче ничего ты не сделаешь, только если не найдешь уже готовую конструкцию и повторишь ее.
Чому? Даже швабропидоры чето мастерят
https://habr.com/post/213803/
Нужно как то подключить выход microSD на Arduino и все сигналы перенаправлять на вафлю, которая далее передает кампутеру, который и будет протокол обрабатывать.
>По первой сцыле это удлинитель
Ты хотел microSD разъем, там переходник из microSD в SD, под который есть готовые решения - как отдельные интерфейсы вроде второго линка, так и всякие Wireless SD
> там вафля в корпусе это лютые наводки и перегрев и само устройство не очень популярно
Какую-то хуйню несешь.
А что ты называешь ардуиной? Если у тебя нет там двух аппаратных SDIO (а их у тебя там нет), то будет слишком медленно либо вообще не получится.
>все сигналы перенаправлять на вафлю, которая далее передает кампутеру, который и будет протокол обрабатывать.
Это так не работает. Как бы обмен с sd картой двунаправленный, т.к. используется файловая система и прочее. Если это делать на компе, то оно будет слишком медленно из-за времени отклика компа. Поэтому нужно делать файловый сервер в самом устройстве.
>>329124
Добавь еще стоимость разъемов и корпуса. А если учесть время работы, то вообще бессмысленно это делать, кроме как в целях обучения. Но ардуинодебилы необучаемы, иначе ты бы уже начал делать или хотя бы читать описание протокола SDIO.
>то оно будет слишком медленно из-за времени отклика компа.
Нормальное там время отклика, ты же видосики по ынтернету смотришь?
Кстати, интересная тема, куплю на поиграть, фирмвар пореверсить
http://dmitry.gr/index.php?r=05.Projects&proj=15&proj=15. Transcend WiFiSD
>>329151
>>329165
Это разные девайсы. Насчет фирмаре - это только трансенд лоханулся.
https://mysku.ru/blog/china-stores/33666.html
https://ru.aliexpress.com/item/Portable-Wireless-Wifi-SD-Card-Micro-SD-MicroSD-TF-Adapter-Converter-for-Nikon-Cameras-Photos-Wirelessly/32860922130.html
> Насчет фирмаре - это только трансенд лоханулся.
Ну не обязательно его снаружи ломать, я попытаюсь распаковать официальный апдейт, модифицировать и перепрошить.
>the product not in stock now
Там почти со всеми карточками как то странно, резко прекращают выпуск. Криптота.
Историю покупок посмотри. Вчера только 3 человека купили
Сосать писос, конечно. В ЕСП нет нормального АЦП, чтобы браться за эту задачу.
Формально да, но чтобы он работал как следует, нужно изрядно поебаться с питанием и входными цепями
https://ru.aliexpress.com/item/Free-Shipping-IIC-I2C-Interface-LCD1602-2004-LCD-Adapter-Plate-for-Arduino/32649843103.html?spm=a2g0s.9042311.0.0.1b6133edelpvyp
Как только подаю на него питание даже без lcd, ардуина тухнет. Плата бракованная, или я где-то обосрался?
5 Ом, да на 5 вольт, да это получается 1 ампер.
Как-то дохуя. Но ты же не сможешь пальцем найти что греется?
По работе я имею дело с промышленными контроллерами Zelio и Logo, там все просто - воткнул его через usb, залил через утилиту написанную программу, подал питание, и эта штука работает по алгоритму.
Причем программа пишется просто - либо логическими блоками, либо "лесенками". Все наглядно и просто.
А тут я решил побаловаться бытовыми контроллерами (промышленные стоят дорого, а всякие gprs или gsm модули к ним еще дороже). Купил по совету анонов NodeMcu на основе ESP8266 CP2102.
Думал, все будет так же - воткнул, залил программу, подал питание, присоединил периферию - и все.
Но хуй там был. Я даже не могу понять, рабочий ли мне прислали девайс. Я открываю статьи - пишут, что можно писать программы на Esplorer и на программке Arduino. Причем там разные языки, судя по синтаксису. Толком не могу понять, как это в итоге работает. Программа переводит из своего языка в машинный код? А если контроллер не умеет выполнять функции, которые я захерачил в программу, что будет? Я не понимаю. И где найти полный мануал по синтаксису? В лоб гуглится только платный видеокурс.
И я не понимаю, почему ни Еsplorer, ни Arduino не видят контроллера. Первая софтина пишет, что не может определить тип устройства. Вторая тоже.
В какой-то статье написали, что его стоит сразу прошить. Сделал по инструкции, запросил прошивку, скачал, залил через предложенную программу, контроллер помигал синим диодиком во время заливки. И все. Что дальше? Как этим пользоваться? Как проверить работоспособность?
>помигал синим диодиком во время заливки. И все. Что дальше?
Все. А дальше втыкаешь свой йободатчик и пишешь пограму.
АСУТПшник познает мир контроллеров. Спешите видеть!
Иди в свой тухлый тред-обучалочку и трите там за свои хуименсы, приперся он тут. Ты посмотри.
>аноны, я такой хороший, использую пережёванный ардуино
>но у меня не получается играться с ардуино
>помогите
Всё просто, ты привык к "простоте" лесенок и кубиков. А мир микроконтроллеров это регистры, таймера, прерывания и код, код, код. У нас нет лесенок, у нас нет кубиков. У нас есть только блокнот. Муахахаха.
Так что, бери документацию, читай её и делай всё по примерам пока. Ардуино не отличается от твоих кубиков толком, чуточку сложнее. Зато также, воткнул в USB порт, получил соединение и заливаешь прошивку. Поумнеешь, сможешь обходиться без предзагрузчика и шить через SPI, без всяческих костылей. Сможешь одолеть лень, так станешь ASM программистом и вся мощь МК будет в твоей власти.
А пока вынимай соску из рта и учись.
int irObstaclePin = 9;
int Obstacle = HIGH;
void setup()
{
pinMode(irObstaclePin, INPUT);
Serial.begin(9600);
}
void loop()
{
Obstacle = digitalRead(irObstaclePin);
if (Obstacle == LOW)
{
Serial.println("OBSTACLE!!, OBSTACLE!!");
}
else
{
Serial.println("clear");
}
delay(200);
}
Не работает. Где в обще брать инфу про инициализацию и подключение для датчиков?
Да и еще джва вопроса:
1. Что такое TX_control? Там только места для припоев.
2. Есть ли разница сколько вольт подключать 3 или 5?
Короче, код говно, setup() не работает, индикатор на плате не светится, но если запустить инициализацию для Servo myservo.attach(9), то индикатор на плате загорается, что за херня?
Я конечно понимаю, что опять залез в песочницу со своими куличиками, но пикрелейтед.
Тебе надо запитать светодиод, отрегулировать его яркость (он инфракрасный, как ты это будешь делать ХЗ) и считывать, котеночек, показания АЦП, на который ты заведёшь выход принимающего диода. Чем меньше амплитуда сигнала, тем ближе объект, тем быстрее доходит отражённый сигнал.
Да, на твоей платке стоит компаратор, чтобы ты получал "0" или "1" на выходе платы, но зачем ты себя ограничиваешь?
>на твоей платке стоит компаратор, чтобы ты получал "0" или "1" на выходе платы,
Посоветовали тнрмоусадкой и фольгой обмотать фотоприемник и абасали компаратор. Кстати, что такое компаратор и почему это плохо?
Компаратор - устройство сравнения двух параметров, когда на входе 1 значение равно значению на входе 2, то на выходе "1", иначе "0". Позволяет отсечь слабые амплитуды, выделить сигнал и прочее. Это не плохо, они просто криворукие и не знают как его настраивать.
Чувствую, хуйцов я сосну с этой картой, эх
Что читать "Занимательная микроэлектроника" или "Занимательная электроника"? Или все по очереди?
Нано от любой другой отличается только количеством входов/выходов, разведённых на плате. Да, можно.
Если поборю апрокстинацию то планирую параллельно с ИГРАМИ В ПЕРДУИНО почитать и попрактиковаться с книжечкой Чарльз Платт - Электроника для начинающих, а то у меня знания по верхам, хотя еще с сосничества увлекался дверными звонками, жучками и прочими мелочами.
-100$
Вероятность того, что ты всё это будешь юзать, крайне мала.
Я вот вкатывался в атмеловские контроллеры (они в ардуинах) купил attiny13, там очень мало инструкций, намного проще разобраться чем сразу в atmega328p прыгать.
Кстати я так и не разобрался.
Хотя почему не разобрался. Кое-что даже спаял и запрограммировал.
Собирался делать переходник для старой пс98 клавы из нано. Но я тупой и все делал по гиту.
Проблема в том, что на на ам328, а на гите прошивка заточена под ам32у4. https://github.com/tmk/tmk_keyboard/blob/master/converter/pc98_usb/READMEПростая подмена в конфигах на ам328 не помогает. Я так понял, что у нано тяжело с такими вещами, ну и заказал леонардо. Сижу жду.
пиздец, раньше даже паяльник в руки не брал, а тут и пайки и прошивки и все это, а ямаксимум овощ в радиотехнике. Зато теперь две нано дома лежат без дела, вот думаю что делать с ними. Я не фанат метеозамеров и цветов, думаю что хорошего можно собрать.
анус от кейстудио есть википедия лезь туда, там на все датчики есть примеры вот конкретно твой
http://wiki.keyestudio.com/index.php/Ks0051_keyestudio_Infrared_Obstacle_Avoidance_Sensor
const int sensorPin = 2; // the number of the sensor pin
const int ledPin = 13; // the number of the LED pin
int sensorState = 0; // variable for reading the sensor status
void setup() {
pinMode(ledPin, OUTPUT);
pinMode(sensorPin, INPUT); }
void loop(){
// read the state of the sensor value:
sensorState = digitalRead(sensorPin);
// if it is, the sensorState is HIGH:
if (sensorState == HIGH) {
digitalWrite(ledPin, HIGH);
}
else {
digitalWrite(ledPin, LOW);
}
}
Разобрался уже, там дело не в коде, а нужно хуйни было крутить отверткой в нужное положение и я в добавок подавал 3v вместо 5v.
Анончи, вопрос, я как долбоеб тыкал в няшу 3v, что такое VCC на пикриле, выделил гламурным розовым колечком? Можно считать VCC=5v? Почему пездоглазы не указывают напряжение?
p.s. и TX_control что это? Я его не подглючал и все работает.
Module Parameter:
1. When the module detects obstacles in front of the signal, the green indicator on the circuit board light level and at the same time the OUT port output low level signal, the detection module from 2 ~ 30cm, 35°detection Angle, test distance can be adjusted through the potentiometer, adjustable potentiometer clockwise, the detection distance increases; Counter-clockwise tuning potentiometer, detection distance is reduced.
2. Sensors, active infrared reflection detection, therefore the reflectivity and shape of the target is the key of the detection range. White one black detection range, minimum maximum; Small area of the object distance, large distance.
3. The sensor module output port OUT can be directly connected to the microcontroller IO port can, also can drive a 5v relay directly; Connection mode: the VCC - VCC; GND - GND; The OUT - the IO
4. The comparator USES the LM393, working stability;
5. Can be used for 3 to 5v dc power to power supply module. When power on, the red power indicator light lit;
6. 3 mm screw holes, easy fixed, installation;
7. Circuit board size: 3.2cm*1.4cm
8. Each module is shipped already compare threshold voltage through the potentiometer to adjust good, not special circumstances, please do not arbitrarily adjust the potentiometer.
Module interface specification:
1. VCC voltage is 3.3V to 5V converter (which can be directly connected to 5V single-chip microcontroller and 3.3V)
2. GND external GND
3. OUT of small plate digital output interface (0 and 1)
задумка: есть ардуинка с подключенными часами DS3231 и реле, в 5 часов 5 минут реле включается и в 5 часов 8 минут отключается. На деле код нихуя не работает, подскажи где я дурак (без If с условиями все работает).
собственно код задумки:
#include <DS3231.h>
// Init the DS3231 using the hardware interface
DS3231 rtc(SDA, SCL);
int rele = 13;
Time t;
void setup()
{
// Initialize the rtc object
rtc.begin();
pinMode(rele, OUTPUT);
}
void loop(){
int liveHour = (t.hour, DEC);
int liveMin = (t.min, DEC);
if (liveHour=05&&liveMin==05){
digitalWrite(rele, HIGH);
}
if (liveHour=05&&liveMin==08){
digitalWrite(rele, LOW);
}
}
содержание библиотеки DS3231:
#define DS3231_h
#if defined(__AVR__)
#include "Arduino.h"
#include "hardware/avr/HW_AVR_defines.h"
#elif defined(__PIC32MX__)
#include "WProgram.h"
#include "hardware/pic32/HW_PIC32_defines.h"
#elif defined(__arm__)
#include "Arduino.h"
#include "hardware/arm/HW_ARM_defines.h"
#endif
#define DS3231_ADDR_R0xD1
#define DS3231_ADDR_W0xD0
#define DS3231_ADDR 0x68
#define FORMAT_SHORT1
#define FORMAT_LONG 2
#define FORMAT_LITTLEENDIAN1
#define FORMAT_BIGENDIAN2
#define FORMAT_MIDDLEENDIAN3
#define MONDAY 1
#define TUESDAY 2
#define WEDNESDAY3
#define THURSDAY4
#define FRIDAY 5
#define SATURDAY6
#define SUNDAY 7
#define SQW_RATE_1 0
#define SQW_RATE_1K 1
#define SQW_RATE_4K 2
#define SQW_RATE_8K 3
#define OUTPUT_SQW 0
#define OUTPUT_INT 1
class Time
{
public:
uint8_t hour;
uint8_t min;
uint8_t sec;
uint8_t date;
uint8_t mon;
uint16_tyear;
uint8_t dow;
Time();
};
class DS3231
{
public:
DS3231(uint8_t data_pin, uint8_t sclk_pin);
voidbegin();
TimegetTime();
voidsetTime(uint8_t hour, uint8_t min, uint8_t sec);
voidsetDate(uint8_t date, uint8_t mon, uint16_t year);
voidsetDOW();
voidsetDOW(uint8_t dow);
chargetTimeStr(uint8_t format=FORMAT_LONG);
chargetDateStr(uint8_t slformat=FORMAT_LONG, uint8_t eformat=FORMAT_LITTLEENDIAN, char divider='.');
chargetDOWStr(uint8_t format=FORMAT_LONG);
chargetMonthStr(uint8_t format=FORMAT_LONG);
longgetUnixTime(Time t);
voidenable32KHz(bool enable);
voidsetOutput(byte enable);
voidsetSQWRate(int rate);
floatgetTemp();
private:
uint8_t _scl_pin;
uint8_t _sda_pin;
uint8_t _burstArray[7];
boolean_use_hw;
void_sendStart(byte addr);
void_sendStop();
void_sendAck();
void_sendNack();
void_waitForAck();
uint8_t_readByte();
void_writeByte(uint8_t value);
void_burstRead();
uint8_t_readRegister(uint8_t reg);
void _writeRegister(uint8_t reg, uint8_t value);
uint8_t_decode(uint8_t value);
uint8_t_decodeH(uint8_t value);
uint8_t_decodeY(uint8_t value);
uint8_t_encode(uint8_t vaule);
#if defined(__arm__)
Twi *twi;
#endif
};
#endif
задумка: есть ардуинка с подключенными часами DS3231 и реле, в 5 часов 5 минут реле включается и в 5 часов 8 минут отключается. На деле код нихуя не работает, подскажи где я дурак (без If с условиями все работает).
собственно код задумки:
#include <DS3231.h>
// Init the DS3231 using the hardware interface
DS3231 rtc(SDA, SCL);
int rele = 13;
Time t;
void setup()
{
// Initialize the rtc object
rtc.begin();
pinMode(rele, OUTPUT);
}
void loop(){
int liveHour = (t.hour, DEC);
int liveMin = (t.min, DEC);
if (liveHour=05&&liveMin==05){
digitalWrite(rele, HIGH);
}
if (liveHour=05&&liveMin==08){
digitalWrite(rele, LOW);
}
}
содержание библиотеки DS3231:
#define DS3231_h
#if defined(__AVR__)
#include "Arduino.h"
#include "hardware/avr/HW_AVR_defines.h"
#elif defined(__PIC32MX__)
#include "WProgram.h"
#include "hardware/pic32/HW_PIC32_defines.h"
#elif defined(__arm__)
#include "Arduino.h"
#include "hardware/arm/HW_ARM_defines.h"
#endif
#define DS3231_ADDR_R0xD1
#define DS3231_ADDR_W0xD0
#define DS3231_ADDR 0x68
#define FORMAT_SHORT1
#define FORMAT_LONG 2
#define FORMAT_LITTLEENDIAN1
#define FORMAT_BIGENDIAN2
#define FORMAT_MIDDLEENDIAN3
#define MONDAY 1
#define TUESDAY 2
#define WEDNESDAY3
#define THURSDAY4
#define FRIDAY 5
#define SATURDAY6
#define SUNDAY 7
#define SQW_RATE_1 0
#define SQW_RATE_1K 1
#define SQW_RATE_4K 2
#define SQW_RATE_8K 3
#define OUTPUT_SQW 0
#define OUTPUT_INT 1
class Time
{
public:
uint8_t hour;
uint8_t min;
uint8_t sec;
uint8_t date;
uint8_t mon;
uint16_tyear;
uint8_t dow;
Time();
};
class DS3231
{
public:
DS3231(uint8_t data_pin, uint8_t sclk_pin);
voidbegin();
TimegetTime();
voidsetTime(uint8_t hour, uint8_t min, uint8_t sec);
voidsetDate(uint8_t date, uint8_t mon, uint16_t year);
voidsetDOW();
voidsetDOW(uint8_t dow);
chargetTimeStr(uint8_t format=FORMAT_LONG);
chargetDateStr(uint8_t slformat=FORMAT_LONG, uint8_t eformat=FORMAT_LITTLEENDIAN, char divider='.');
chargetDOWStr(uint8_t format=FORMAT_LONG);
chargetMonthStr(uint8_t format=FORMAT_LONG);
longgetUnixTime(Time t);
voidenable32KHz(bool enable);
voidsetOutput(byte enable);
voidsetSQWRate(int rate);
floatgetTemp();
private:
uint8_t _scl_pin;
uint8_t _sda_pin;
uint8_t _burstArray[7];
boolean_use_hw;
void_sendStart(byte addr);
void_sendStop();
void_sendAck();
void_sendNack();
void_waitForAck();
uint8_t_readByte();
void_writeByte(uint8_t value);
void_burstRead();
uint8_t_readRegister(uint8_t reg);
void _writeRegister(uint8_t reg, uint8_t value);
uint8_t_decode(uint8_t value);
uint8_t_decodeH(uint8_t value);
uint8_t_decodeY(uint8_t value);
uint8_t_encode(uint8_t vaule);
#if defined(__arm__)
Twi *twi;
#endif
};
#endif
точно не в этом дело, но все равно спасибо, исправил
И вообще либа какая-то кривая. Нахуй там время одной строкой? Где запрос регистров?
Ищи нормальную либу и готовый проект, и правь под себя.
Minute = RTC_Read(0x01);
Hour = RTC_Read(0x02);
if ((Minute%0x10 == 0x08) && (Hour == 0x05))
{
Творить_хуйню();
}
В ардуине не нужны (см. последовательность обработки).
Скобки везде ставят нубы (по незнанию) или сорт оф профдеформация (когда в компиляторе вырезается оптимизация и precedence).
>Скобки везде ставят нубы
Нубы путают == vs =
И потом молят о помощи
liveHour = 05 && liveMin == 05
очевидный баг
ARM-ы почти все могут, в т.ч. используя битбэндинг
Вообще тебе нужно что-то другое, cpld/fpga, инфа 146%.
>fpga
Таки да, мне нужно проксировать данные на шине, ловить определенные посылки и менять в них байтики. Но с fpga я дел не имел.
Насколько вообще долго вкатываться во что-то вроде Altera MAX 2? Без vdhl думаю обойдусь, хватит и логической схемы
>Насколько вообще долго вкатываться во что-то вроде Altera MAX 2? Без vdhl думаю обойдусь, хватит и логической схемы
Зависит от IQ & имеющегося опыта в программировании и схемотехнике. От 1-2 дней до бесконечности.
Есть схема на гите, пик1. Чувак с ней узкопленочный и пользуется тинси.
У меня же леонардо, поэтому такой вещи как пд5 я не нашел. Решил поменять в конфиге на пд1 ну она сам же пишет и слегка не понял пик 2
Вроде как там уже прописан пд1? Или я туплю как-то?
никогда не интересовался ардуинами, а тут изза клавы копеечной уже и паять научился и платами обмазался и теперь на внутреннем хайпе еще стартер кит с сенсорами заказал на будущее
Историю изменения файла в гите смотри. Это изменил кто-то 2-ого июня, но описание поправить забыл.
https://github.com/tmk/tmk_keyboard/commit/54c9e737d0f5c4b52294f5bd9da0bbebda8d86f6#diff-39a24875cbd4ee5213962d5827fa0e17
Спасибо, тогда будем думать, что у нас не так. Клава нивкакую, даже лампочками не мигает.
В итоге получил пикрелейтед. Это ещё можно исправить или его предки уже улыбаются ему?
Составляющие: Arduino Mega 2560, 6x MOSFET IRF520, HC-SR501, блок питания 12В, провода, лента. Все прикручено к доске, а доска в железном ящике.
Проблема в том, что когда я включаю питание к ленте, то сигнальный провод от датчика перманентно выдает HIGH. Без ленты все отлично работает (светодиоды на мосфет модулях отображают).
Схема подключения датчика пикрелейтед.
На пин 21 повешано прерывание, которое постоянно вызывается и ардуина виснет.
Прикрой датчик, чудило. Он у тебя постоянно что-то "видит". HC-SR501 - ИК датчик ТЕПЛА.
Анон, все куда сложнее. Взял отдельно Uno, подцепил к нему датчик, поставил в цикле считывание с датчика и вывод на 13 пин. Когда хожу, то светодиод загорается. Все работает. Не чудило я. Затем беру и втыкаю этот 13 с Uno на 21 в Mega и тоже самое. Ей кажется, что на 21 пин идет сигнал, но лампочка на Uno не горит. В результате Mega просто виснет в обработчике прерывания. Сам в электричестве не силен, может чего то не понимаю. А может я спалил чего?
>лента
Магниевая? Ферромагнитная?
В таких случаях нужно выкладывать как можно больше информации, схему и скетч до кучи. Иначе вообще не понятно что-за огород там. Mega2560+IRF520+HC-SR501. Такого пиздеца давно не видел.
>освещение на датчике движения.
>Составляющие: Arduino Mega 2560
Посоны, играю в Super Mario. Железо: Geforce 1080Ti
Специально всё разобрал и собрал по новой.
Скетч вот этот:
#include <LiquidCrystal.h>
LiquidCrystal lcd(5, 7, 9, 10, 11, 12); // (RS, E, DB4, DB5, DB6, DB7)
void setup(){
lcd.begin(16, 2);
lcd.setCursor(0, 0);
lcd.print("SUP");
lcd.setCursor(0, 1);
lcd.print("RA");
}
void loop(){
}
>лента
Светодиодная.
Код: https://pastebin.com/V6aECBTr
Повторю проблему. Сначала включаю схему без блока питания на ленту. Датчик правильно работает, все верно исполняется. Включаю ленту, происходит ложное срабатывание и все зависает. Если выдернуть 21 пин, то оно дальше работает как ни в чем не бывало.
А схема где? Тут уже овер 9000 раз были проблемы то с полярностью, то с утечкой высокого напряжения на датчики/ардуину.
Блок питания 9V 1A. С али заказывал.
Сейчас взял второй датчик и подключил короткими проводками. Все отлично работает. Мне кажется, что вся проблема в помехах. До датчика протянуты провода 6.5 метров ШВВП. Где-то метра два вместе с проводами питания для ленты лежат вместе. Что скажете?
Как минимум не ложить провода вместе и подтяни 21-ый пин (или линию) к земле внешним резистором на 4.7кОм. А вообще читай про согласование цепей.
Экранированный провод при длине провода более метра - ОЧЕНЬ ОБЯЗАТЕЛЕН.
Есть успех, винда видит pc98converter в устройствах. Но клава так и не отвечает.
Hid_listener говорит >PC98: send 9C: 9C
ридми и матрих фаил говорят что это защита от залипания клавиш или что-то в этом роде. Но я немного туповат и немогу понять, это он мне в ххидлистенере говорит, что у меня клавиша залипла?
В чем может быть проблема? кроме моих кривыхх рук
Заебала эта ебала, я блять тупой чтоле, ардуины сука школьникам на информатике дают и все у них норм, они спокойно в ней разбираются, роботов там строят, медали всякие получают, хуле у меня все так, я прямо горю внутри от этой хуйни
Сап, пинусисы, такой вопрос. Вот я планирую одну довольно простенькую, в плане электроники хуетовинку сделать. Грубо говоря, к ардуине будет подключено 3 реостата. Соответственно, как я понимаю, 3 порта будет подтянуто к земле через резисторы, а +5V будет идти через эти самые реостаты. Так вот, блядь, три реостата - хуйня, в плане нагрузки, а вот если я буду больше всяких сенсоров-хуенсоров вешать? Как все это подключить-то, чтобы ардуина не крякнула от нагрузки? Как я понимаю, можно это провернуть - сделать "шину" питания, то есть, подцепить ардуину разъемами 5V и GND к источнику питания 5В, и уже через эту шину подцеплять-подтягивать разные нагрузки. Правильно? Или я уже на первых скачках своей охуенной теории обосрался?
>три реостата - хуйня, в плане нагрузки
Реостаты это вообще не нагрузка, входящий порт меряет только напряжение, падающее на реостате, не потрябляя практически совсем ток.
>, а вот если я буду больше всяких сенсоров-хуенсоров вешать?
Сенсоры-хуенсоры в большинстве случаев тоже потребляют пренебрежимо мало, точные значения можно узнать в даташите самого компонента сенсора. Существенно потребяют только датчики движения, газоанализаторы и некоторые другие виды.
>сделать "шину" питания, то есть, подцепить ардуину разъемами 5V и GND к источнику питания 5В, и уже через эту шину подцеплять-подтягивать разные нагрузки
Правильно, но некоторые нагрузки могут не выдержать нагрузки 5В, и им нужно будет устраивать отдельную шину 3.3В, как например большинство датчиков атмосферного давления. Это тоже прописано в даташитах или описаниях подлючаемых модулей.
>им нужно будет устраивать отдельную шину 3.3В
Это, я тк понимаю, про именно сенсоры для ардуины. Сейчас интересен такой вопрос - ардуине же надо подтягивать порты ввода к земле, ей похуй, к какой земле я их подтяну? НУ, то есть, вот к этой самой "шине" или к ее земле. А, бля, шина ведь будет к земле и подоединяться. Ебать я тупой.
P.S.
>Реостаты - не нагрузка.
Но, допустим у реостата в одном из положений 306 Ом сопротивление Не спрашивай, откуда точные цифры.. По закону Ома через него, а, значит, и через порт, будет течь 0,16А. Если 3 таких реостата подключить, это уже ~0,5А, а это уже близко к границе запаса вывода земли у ардуины.
>Но, допустим у реостата в одном из положений 306 Ом сопротивление Не спрашивай, откуда точные цифры.. По закону Ома через него, а, значит, и через порт, будет течь 0,16А.
Не будет. См. пикрелейтед.
Если завернуть cat в while, то когда комп свопится, пропадает часть строк
Обмотай ты их пикрелейтедом в воткни в минус. А лучше заземли, если в розетке есть земля.
Энергосберегающая?
Чинят резистором https://www.youtube.com/watch?v=_W2VLLtUK8I
Или кондёром https://www.youtube.com/watch?v=nsTyGL9dyGg
Я не понимаю как это работает, но вроде работает.
Реле у меня вот такие 5 вольтовые https://www.ebay.com/itm/1-2-5-10PCS-5V-12V-24V-G3MB-202P-DC-AC-PCB-SSR-Solid-State-Relay-Module-CK/191983601531 и энергосберегающая мигает раз в минуту и очень тускло. Можешь такие попробовать. А может у меня просто лампа такая и твоя всё равно будет мигать.
надо и то, и то ставить. Эта хня называется снаббер.
Допустим, запитал я через Vin и GND ардуину 12 вольтами. Подключил релюшек и реостатиков через 5В и GND. Так вот, у 5V-то запас по току не резиновый, верно? Что делать, если мне надо БОЛЬШЕ ТОКА? Ну, типа, релешка открывается 0,2А 5В Хуй знает, на самом деле, каким она там током, блядь, открывается, мне сам факт того, что она нагружает порт ардуины интересен., а мне надо подключить МНОГО релешек и реостатиков. Щито делать? Если я подтяну пины, считывающие "показания" с реостатов к земле в таком случае, я ведь их спалю нахуй? А как будет работать реостат, когда его, по-сути, надо к 5V и к пину подвести? Конфликт получается - с одной стороны 12В, с другой 5В.
Честно говоря, в такой сложной схемотехнике, как ардуино не секу почти никак, потому и српашиваю, наверное, глупые вопросы.
Ардуина от 12В крякнет.
К выходу подключаешь транзисторный ключ. С ним ток от выхода ардуины меньше в h21э раз.
Можешь применить поляризованные реле, они требуют ток только на переключение, но дороже.
Купи на али готовую плату с реле там уже есть все что нужно.
оригинал может и нет, а вот китайская версия с левым 1117 запросто. Они пробиваются от 12 вольт и с меньшей нагрузкой, чем много релюшек
Окей, понял, ардуина китайская крякнет. Но мне все равно интересно, как организовать питание ардуины от 12В и при этом не проебать возможность пользоваться 5В логикой. То есть, мне сейчас не для практической цели какой-то, а чисто из научного интереса.
Итак, есть у нас ардуина, к ногам Vin и GND которой я подключил БП на 12В. Мне надо подключить к ней реостат, с которого считывать аналоговое значение, исходя из которого будет замыкаться реле. А еще мне надо подключить к ней это самое реле. Возможно этих реостатов и реле несколько это для выполнения условия нехватки тока на пинах ардуины. Итак, я подключаю один из выводов реостата на землю, второй на аналоговый порт, допустим, а третий я подключаю на 5V. Потом я подключаю реле на 3 порт и на землю. Получается, что я могу большим количеством своих ебучих реостатов перегрузить 5V порт? Получается, что я могу и землю перегрузить, если слишком много подтягивающих резисторов или релюшек подключу Но тут, как я понимаю, я буду перегружать уже не ардуину, а БП.? Как будут работать ардуиновские порты, когда земля у нас, вроде как, на сколько я понимаю, -12В, а порт выдает +5В?
> у нас ардуина, к ногам Vin
что же ты за тупизень иди на али эспресс найди официальный магазин роботдина
купи там нано 328п икупишилд под нее удобно очень я на них делаю супер пупер управлялки дляразных устройств питаю от 12 вольт все работает
Хули ты в залупу лезешь? Нахуй что-то покупать, если мне само понимние нужно? Не можешь объяснить - помолчи, а вот советы ненужные давать не надо. Теоретическая часть мне интересна, а не то, что там можно докупить.
Поясните за
>роботдина
Стоит ли им переплачивать за "качество"? Их платы надежнее обычных китайских?
Блджад, да объясни ж ты мне, как ардуина будет работать, если ей 12В питания дать, вот и все. Мне просто интересно, ебаный насос, как эта хуибала с этим справляется. Типа, если пин в режиме инпут, то он с шины питания, на которую + от БП кинут, не больше 5В берет? А к земле он как подятнут - тоже с нее сам берет только -5В, а остальное напряжение каким-то хуем отсекает? Как, блядь, оно работает, вот и все - интересно мне.
Какое нахуй отрицательное напряжение ты там нашёл. 12В это +12В от нуля. 5В это +5В от нуля. Пин высокий = 5В. Пин низкий = 0В. Выше 5В на пин = смерть контроллера. Контроллер работает от 12В через регулятор напряжения, который понижает его до 5В. Земля что от него, что от БП в данном случае принимается за нуль вольт.
>Земля что от него, что от БП в данном случае принимается за нуль вольт.
То есть, даже если я подключил ардуину к 12В БП я могу подтягивать ее разъемы к земле, не опасаясь ее спалить? 5В для digitalread тогда придется через понижающий модуль откуда-то брать, верно? Я просто реально хочу понять, как это все работает.
Какая у тебя плата?
Если на плате есть регулятор (AMS)1117-5.0, то на вход Vin (RAW) он же разъём под круглый штекер - можно подать 12В и соединить GND(-) БП с GND(-) ардуины.
>подтягивать ее разъемы к земле
Подтягивать пины контроллера к земле ты можешь, но в режиме выхода должен быть резистор для ограничения тока. В режиме входа подключать можно напрямую. Напряжение на входе/выходе пина не должно быть превышать 5В относительно GND, т.е., ты не можешь подать на пин сигнал с/на устройства 12В и того же твоего БП напрямую, тут нужен будет конвертер напряжений.
>5В для digitalread
Читается любой сигнал напряжением не выше 5В относительно GND. Т.е. на плате есть выход 5V. С него и GND ты можешь запитать маломощное устройство и считать сигнал с этого устройства любым пином ардуины с возможностью DigitalRead. Ток выхода с пина 5V ардуины, подключая всякие релюшки и прочее говно, я бы не стал завышать более 100мА, а иначе регулятор перегреется и ебанёт. Если устройство питается от другого источника, то напряжение выхода устройства(зачастую это напряжение питания самого устройства) не должно превышать 5В, а иначе ардуина сгорит. В режиме только Read можно снизить напряжение сигнала с помощью простого резистивного делителя напряжения.
Чтобы понимать как всё это работает - ХЗ, это базовые знания физики и электротехники. Читай книги, смотри видео, изучай схемы, напрягай мозг - сотни вариантов научиться в этом разбираться.
>придется через понижающий модуль откуда-то брать, верно?
Да, вот такой.
Неужели так сложно было открыть учебник и прочитать про закон Ома и законы Кирхгофа?
Добавлю, что по моему мнению ограничение тока в 100мА обусловлено в т.ч. использованием 12В в качестве напряжение питания. Чтобы получить больший ток - нужно снижать напряжение питания или использовать эффективный преобразователь, а не линейный регулятор.
>закон Ома
Да его-то я хорошо знаю, он меня в заблуждение и ввел. Посчитал ток, который через всякую хуйню течет, понял, что можно перегрузить им порты на ардуине и сижу, туплю.
>уно
12В на питание - можно.
Подтягивать пины к земле в режиме входа - можно. В режиме выхода - можно, но с резистором.
Нагружать устройствами суммарным током регулятор больше 100мА - нежелательно.
При параллельном соединении отрицательных напряжений нет. Отсчёт идёт от GND принятой за 0В. Всё.
>Подтягивать пины в режиме вывода.
А зачем так делать? В режиме ввода - понятно, отсечь неопределенность, а в режиме вывода-то зачем?
Понятия не имею. Вопрос был:
>я могу подтягивать ее разъемы к земле, не опасаясь ее спалить?
Ответ соответствующий.
Какой девайс мне нужен кроме ардуины?
Сдвиговые регистры по SPI: 74HC165 на кнопки. 74HC595 на светодиоды.
Расширитель портов по I2C: PCF8574.
>PCF8574
О, круто!
А не подскажешь, что изменится если вместо светодиодов мне нужны транзисторы (не знаю какие) для пропуска 24 вольт?
Если у меня с головой всё нормально, то в даташите у него макс.ток выхода с пина овер 300мкА по выс.уровню и 50мА по низкому. С мощными полевиками он явно не справится, поэтому идеально встанет PNP транзистор мощности немного выше слабой, либо любой очень мелкий транзистор на низкой частоте. В любом другом случае нужен какой-то усилитель в зависимости от типа транзистора и его параметров, например, транзистор Дарлингтона или симметричный эмиттерный повторитель для полевого транзистора. Всё как и марка транзистора зависит от параметров нагрузки. Короче говоря, нужно знать что именно ты делаешь.
Я собираюсь всего лишь управлять другой платой, думаю нагрузке там неоткуда взяться.
А я собираюсь хуем до потолка стрельнуть посоветовать 2N7002, но не знаю каким полюсом ты собрался управлять, не знаю частоты работы для расчёта тока затвора, не знаю есть ли там существенная индуктивная нагрузка для двойного запаса по напряжению ... , поэтому просто оставлю это здесь чтоб ты видел, что кому-то не безразлична судьба твоего девайса (похуй вообще).
. С меня видео вылетающей ошибки если получится.
Ну как ты понял я почти не шарю во всем этом, но всеравно спасибо тебе анон.
в бюджетном климат-контроле компрессор кондея он-офф. ты описал работу дорогого климат-контроля.
>А тебе сколько их надо?
Я об этом и спросил. Там получается 2 девайса по SPI, если я правильно понял пикрил, мне нужно 5 пинов, плюс питание и земля, но если я хочу использовать USB, то это сразу минус 2 пина на дигиспарке, значит вроде не хватит.
Вот мой говнокод. Помогите разобраться, что я делаю не так.
#define reostat1 A0
#define reostat2 A1
#define LED 8
void setup() {
pinMode (reostat1, INPUT);
pinMode (reostat2, INPUT);
pinMode (LED, OUTPUT);
Serial.begin (9600);
}
void loop() {
int polozhenie = LOW;
int zaderzhka = 0;
int srabativanie = 0;
unsigned long previousTime1 = 0;
unsigned long previousTime2 = 0;
unsigned long currentTime = millis();
zaderzhka = analogRead(reostat1);
srabativanie = analogRead(reostat2);
if (currentTime - previousTime1 > zaderzhka) {
previousTime1 = currentTime;
if (polozhenie = LOW) {
polozhenie = HIGH;
digitalWrite(LED, HIGH);
}
if (currentTime - previousTime2 > srabativanie) {
if (polozhenie = HIGH) {
previousTime2 = currentTime;
polozhenie = LOW;
digitalWrite(LED, LOW);}
}
}
Serial.println (polozhenie);
Serial.println (zaderzhka);
Serial.println (srabativanie);
}
Вот мой говнокод. Помогите разобраться, что я делаю не так.
#define reostat1 A0
#define reostat2 A1
#define LED 8
void setup() {
pinMode (reostat1, INPUT);
pinMode (reostat2, INPUT);
pinMode (LED, OUTPUT);
Serial.begin (9600);
}
void loop() {
int polozhenie = LOW;
int zaderzhka = 0;
int srabativanie = 0;
unsigned long previousTime1 = 0;
unsigned long previousTime2 = 0;
unsigned long currentTime = millis();
zaderzhka = analogRead(reostat1);
srabativanie = analogRead(reostat2);
if (currentTime - previousTime1 > zaderzhka) {
previousTime1 = currentTime;
if (polozhenie = LOW) {
polozhenie = HIGH;
digitalWrite(LED, HIGH);
}
if (currentTime - previousTime2 > srabativanie) {
if (polozhenie = HIGH) {
previousTime2 = currentTime;
polozhenie = LOW;
digitalWrite(LED, LOW);}
}
}
Serial.println (polozhenie);
Serial.println (zaderzhka);
Serial.println (srabativanie);
}
Потыкал и выяснил, что ардуина с моим кодом millis не считала. Поправил, теперь считает, но "положение" по прежнему показывает 0.
#define reostat1 A0
#define reostat2 A1
#define LED 8
int polozhenie = LOW;
int zaderzhka = 0;
int srabativanie = 0;
unsigned long previousTime1 = 0;
unsigned long previousTime2 = 0;
unsigned long currentTime;
void setup() {
pinMode (reostat1, INPUT);
pinMode (reostat2, INPUT);
pinMode (LED, OUTPUT);
Serial.begin (9600);
}
void loop() {
currentTime = millis();
zaderzhka = analogRead(reostat1);
srabativanie = analogRead(reostat2);
if (currentTime - previousTime1 > zaderzhka) {
previousTime1 = currentTime;
if (polozhenie = LOW) {
polozhenie = HIGH;
digitalWrite(LED, HIGH);
}
if (currentTime - previousTime2 > srabativanie) {
if (polozhenie = HIGH) {
previousTime2 = currentTime;
polozhenie = LOW;
digitalWrite(LED, LOW);}
}
}
Serial.println (polozhenie);
Serial.println (zaderzhka);
Serial.println (srabativanie);
Serial.println (currentTime);
Serial.println (previousTime1);
Serial.println (previousTime2);
}
#define reostat1 A0
#define reostat2 A1
#define LED 8
int polozhenie = LOW;
int zaderzhka = 0;
int srabativanie = 0;
unsigned long previousTime1 = 0;
unsigned long previousTime2 = 0;
unsigned long currentTime;
void setup() {
pinMode (reostat1, INPUT);
pinMode (reostat2, INPUT);
pinMode (LED, OUTPUT);
Serial.begin (9600);
}
void loop() {
currentTime = millis();
zaderzhka = analogRead(reostat1);
srabativanie = analogRead(reostat2);
if (currentTime - previousTime1 > zaderzhka) {
previousTime1 = currentTime;
if (polozhenie = LOW) {
polozhenie = HIGH;
digitalWrite(LED, HIGH);
}
if (currentTime - previousTime2 > srabativanie) {
if (polozhenie = HIGH) {
previousTime2 = currentTime;
polozhenie = LOW;
digitalWrite(LED, LOW);}
}
}
Serial.println (polozhenie);
Serial.println (zaderzhka);
Serial.println (srabativanie);
Serial.println (currentTime);
Serial.println (previousTime1);
Serial.println (previousTime2);
}
Почитай книжку по Сям, чувак. Например классику типа Кернигана и Ритчи.
Первый пример закономерно не работал ибо переменные, объявленные внутри функции живут только во время выполнения этой функции. loop() циклически вызывается из основной функции и каждый раз переменные обнуляются. Можно было поступить как ты и сделал потом - вынести переменные в глобальную область, либо объявить их внутри как static.
А сейчас косяк в условии - в сях = это оператор присваивания, оператор сравнения это ==
Что на нем планирую сделать:
- детектор дыма/газа/отключения энергопитания
- передача видео/звуко/потока по 3g на сайт, запись потока на флешку
- возможность управлять моторчиками по интернету
- питание от батареи с солнечным аккамулятором
- мигание лампочек/звуковой сигнал
Бюджет не резиновый, но запчасти будут докупаться в процессе развития своего творчества с платой.
От платы хотелось бы, чтобы она потенциально все вышеупомянутое тянула, ну и + чтобы побольше возможностей для расширения для разнообразных датчиков было, например wifi и десяток других, я так понимаю там ограниченное количество дырок под эти датчики?
С платой дела не идел, программист, люблю конструктор, имеется опыт с электронным конструктором.
С алиекспресса не могу заказывать, хочу прямо сейчас с Украины
Например взять это https://rozetka.com.ua/38510272/p38510272/
И докупить к нему набор сенсоров https://arduino.ua/prod1131-nabor-datchikov-37v-1-dlya-arduino
>Адруина на такое способна же?
Конечно способна. Ебашишь ПИД-скетч, настраиваешь его по методу Циглера-Никольса и наслаждаешься своим рефрижератором.
>Ебашишь ПИД-скетч, настраиваешь его по методу Циглера-Никольса
Как много мне предстоит узнать
моргает ли светодиод при включении/сбросе?
если у меня в коде запрещены прерывания, будут ли проблемы с wdt, который включен где-то в бутлоадере?
Добрый анонче, поясни, где я конкретно накосячил, пожалуйста. Попробовал перед работой поменять = на == в строках
previousTime1 = currentTime;
Сообщение рано отправилось.
Добрый анонче, поясни, где я конкретно накосячил, пожалуйста. Попробовал перед работой поменять = на == в строках
previousTime1 = currentTime;
и
previousTime2 = currentTime;
Ардуина снова перестала считать эти 1 и 2 время. Попробовал поменять = на == в
polozhenie = LOW;
Тоже ничего не дало.
Да.
Я, допустим, подозреваю, что вычитание выполнится первым, а потом сравнение, но хуй знает. В доки лезть лениво, я лучше скобки поставлю.
Знаю, что многие меня за такой подход обфыркают.
Переписал скетч по-другому. Теперь эта срань мигает, но д.же уж странно - только в определенных положениях реостатов светодиод хоть как-то похоже на то, что я от него хочу, ведет себя. Попробовал продолжительность и частоту мигания увеличить/уменьшить с помощью умножения значений задержки и срабатывания на разные числа, толку особого не дало. Ведет себя светодиод так - при определенных положениях реостата, отвечающего за длину задержки, светодиод просто не загорается. Чому так - понять не могу и снова прошу помощи у уважаемых знатоков.
вот скетч.
#define reostat1 A0
#define reostat2 A1
#define LED 8
int polozhenie = LOW;
int zaderzhka = 0;
int srabativanie = 0;
unsigned long previousTime1;
unsigned long previousTime2;
unsigned long currentTime;
void setup() {
pinMode (reostat1, INPUT);
pinMode (reostat2, INPUT);
pinMode (LED, OUTPUT);
Serial.begin (9600);
}
void loop() {
currentTime = millis();
zaderzhka = analogRead(reostat1);
srabativanie = analogRead(reostat2);
if ((currentTime-previousTime1)>=(zaderzhka*100) && (polozhenie == LOW)) {
digitalWrite (LED, HIGH);
polozhenie = HIGH;
previousTime1==currentTime;
}
if ((currentTime-previousTime2)>=(srabativanie) && (polozhenie == HIGH)) {
digitalWrite (LED, LOW);
polozhenie = LOW;
previousTime2=currentTime;
}
Serial.println (zaderzhka);
Serial.println (srabativanie);
Serial.println (polozhenie);
Serial.println (currentTime);
Serial.println (previousTime1);
Serial.println (previousTime2);
}
Переписал скетч по-другому. Теперь эта срань мигает, но д.же уж странно - только в определенных положениях реостатов светодиод хоть как-то похоже на то, что я от него хочу, ведет себя. Попробовал продолжительность и частоту мигания увеличить/уменьшить с помощью умножения значений задержки и срабатывания на разные числа, толку особого не дало. Ведет себя светодиод так - при определенных положениях реостата, отвечающего за длину задержки, светодиод просто не загорается. Чому так - понять не могу и снова прошу помощи у уважаемых знатоков.
вот скетч.
#define reostat1 A0
#define reostat2 A1
#define LED 8
int polozhenie = LOW;
int zaderzhka = 0;
int srabativanie = 0;
unsigned long previousTime1;
unsigned long previousTime2;
unsigned long currentTime;
void setup() {
pinMode (reostat1, INPUT);
pinMode (reostat2, INPUT);
pinMode (LED, OUTPUT);
Serial.begin (9600);
}
void loop() {
currentTime = millis();
zaderzhka = analogRead(reostat1);
srabativanie = analogRead(reostat2);
if ((currentTime-previousTime1)>=(zaderzhka*100) && (polozhenie == LOW)) {
digitalWrite (LED, HIGH);
polozhenie = HIGH;
previousTime1==currentTime;
}
if ((currentTime-previousTime2)>=(srabativanie) && (polozhenie == HIGH)) {
digitalWrite (LED, LOW);
polozhenie = LOW;
previousTime2=currentTime;
}
Serial.println (zaderzhka);
Serial.println (srabativanie);
Serial.println (polozhenie);
Serial.println (currentTime);
Serial.println (previousTime1);
Serial.println (previousTime2);
}
>int zaderzhka = 0;
>zaderzhka = analogRead(reostat1);
>zaderzhka*100
И тут кстати тоже. Аналрид выдает значение от 0 до 1023, и будучи умноженным на 100 оно может вылазить из диапазона int, а с учетом того что он еще и знаковый вообще пиздец выходит
Знаковый значит со знаком, а-ля signed:
>This yields a range of -32,768 to 32,767
А вот unsigned int без знака:
>yielding a useful range of 0 to 65,535
Анон выше уже пояснил, но чтобы было еще понятнее, при переполнении типа, значение
>zaderzhka*100
может стать в том числе и отрицательным, в таком случае естесвенно условие не выполняется никогда и тогда
>при определенных положениях реостата, отвечающего за длину задержки, светодиод просто не загорается
Чего ставить?
avr-gcc же
в блядской ардуине кстати используется он же, только с оберткой из кучи библиотек и типасредой на яве
Аноны, я уже всяко-разно изголялся, чтобы заставить эту хуибалу работать, а она все равно не работает.
Посмотрите эту хуйню, кто-нибудь, ради бога, поправьте, что там не так. Она какого-то хрена, на данный момент, previousTime'ы не считает. Ни один из них. Я так понимаю, не выполняется самое первое условие, хотя непонятно, почему, ну и дальше, собственно, из-за этоого вся котовасия и идет.
#define reostat1 A2
#define reostat2 A5
#define LED 11
int polozhenie;
unsigned long zaderzhka = 0;
unsigned long srabativanie = 0;
unsigned long previousTime1 = 0;
unsigned long previousTime2 = 0;
unsigned long currentTime;
void setup() {
pinMode (reostat1, INPUT);
pinMode (reostat2, INPUT);
pinMode (LED, OUTPUT);
Serial.begin (9600);
}
void loop() {
currentTime = millis();
zaderzhka = analogRead(reostat1);
srabativanie = analogRead(reostat2);
if (currentTime - previousTime1==zaderzhka) {
polozhenie = HIGH;
previousTime1 = currentTime;
}
else if (currentTime - previousTime2==srabativanie){
polozhenie = LOW;
previousTime2 = currentTime;
}
digitalWrite (LED, polozhenie);
Serial.println (zaderzhka);
Serial.println (srabativanie);
Serial.println (polozhenie);
Serial.println (currentTime);
Serial.println (previousTime1);
Serial.println (previousTime2);
}
Аноны, я уже всяко-разно изголялся, чтобы заставить эту хуибалу работать, а она все равно не работает.
Посмотрите эту хуйню, кто-нибудь, ради бога, поправьте, что там не так. Она какого-то хрена, на данный момент, previousTime'ы не считает. Ни один из них. Я так понимаю, не выполняется самое первое условие, хотя непонятно, почему, ну и дальше, собственно, из-за этоого вся котовасия и идет.
#define reostat1 A2
#define reostat2 A5
#define LED 11
int polozhenie;
unsigned long zaderzhka = 0;
unsigned long srabativanie = 0;
unsigned long previousTime1 = 0;
unsigned long previousTime2 = 0;
unsigned long currentTime;
void setup() {
pinMode (reostat1, INPUT);
pinMode (reostat2, INPUT);
pinMode (LED, OUTPUT);
Serial.begin (9600);
}
void loop() {
currentTime = millis();
zaderzhka = analogRead(reostat1);
srabativanie = analogRead(reostat2);
if (currentTime - previousTime1==zaderzhka) {
polozhenie = HIGH;
previousTime1 = currentTime;
}
else if (currentTime - previousTime2==srabativanie){
polozhenie = LOW;
previousTime2 = currentTime;
}
digitalWrite (LED, polozhenie);
Serial.println (zaderzhka);
Serial.println (srabativanie);
Serial.println (polozhenie);
Serial.println (currentTime);
Serial.println (previousTime1);
Serial.println (previousTime2);
}
При подключении платы к usb 13 светодиод сначала быстро моргает, потом моргает несколько раз с долгой паузой, выяснил - это предзагруженный скетч.
При загрузке тестового скетча на диод уже записанный скетч не перезаписывается, в итоге новая программа не работает (включать и выключать дион с интервалом 1 сек)
Китайский драйвер CH341 поставлен. В диспетчере плата отображается как 340 драйвер.
Сзади платы какие-то белые разводы. Диод питания горит.
На передней стороне платы надпись уже не wavcat, а wvcat.
У меня настроение на паршивый китай.
Дальнейшие действия?
Поменял плату на nano, заработало
ПРОСТОЙ ГаЙД ДЛЯ НОВИЧКОВ
@
ПИШИТЕ INT, ПОТОМ INSIGNED LONG
@
ВСЕ ПРОСТО И ПОНЯТНО
@
НУ ВОТ ВЫ И НАУЧИЛИСЬ ПРОГРАММИРОВАТЬ
Это тралинг такой?
(currentTime - previousTime1 < deltaTime)
И ещё, функция analRead() выдаёт int в ДИАПАЗОНЕ от 0 до 1023. Ты можешь просто не влезть в диапазон.
Объясни для начала, что за хуйню ты хоть делаешь?
Иди в pr в С или в С++ трэд, качай рекомендованную литературу я рекомендую Липмана по С++ и Стивена Прату по С, качай даташит на Atmega 328. И погрузись в пучину пиздеца.
Ардуина это конструктор для школьников и первокурсников. Чтобы у них очко не дрожало при виде схем и кода.
В сях очень много тонких моментов. Например:
int a = 2;
int b =3;
float reluslt;
result = a/b; - тута будет, ВНЕЗАПНО 0. Почему? А патаму что выражения с интами будет интового ТИПА. И чтобы результат был циферками ПОСЛЕ запятой, надо делать примерно так:
result = 1.0*a/b;
2+2=4
@
6/3=2
ТЕПЕРЬ ВЫ ЗНАЕТЕ МАТЕМАТИКУ, ДАВАЙТЕ РЕШИМ ТАКОЙ ПРИМЕР
@
ТРОЙНОЙ ИНТЕГРАЛ ОТ НЕБА ДО АЛЛАХА. ЛОГАРИФМЫ, МАТРИЦЫ, МНИМЫЕ ВЕЛИЧИНЫ
>ардуинка это для того чтобы наша деточка не порвала себе жопку об острые углы крестов.
Я думал ардуика для веселого времяпровождения с мигающими светодиодами, сервоприводами и датчиками дождя, а не для красноглазого пердолинга.
>Я думал ардуика для веселого времяпровождения с мигающими светодиодами, сервоприводами и датчиками дождя, а не для красноглазого пердолинга.
Тут парой постов выше один уже пытался помигать анусом не пердолясь, результат на лицо. Уже больше трёх постов с говнокодом.
> >>334201 да, ардуинка это для того чтобы наша деточка не порвала себе жопку об острые углы крестов.
>Иди в pr в С или в С++ трэд, качай рекомендованную литературу я рекомендую Липмана по С++ и Стивена Прату по С, качай даташит на Atmega 328. И погрузись в пучину пиздеца.
>Ардуина это конструктор для школьников и первокурсников. Чтобы у них очко не дрожало при виде схем и кода.
>В сях очень много тонких моментов. Например:
>
>int a = 2;
>int b =3;
>float reluslt;
>
>result = a/b; - тута будет, ВНЕЗАПНО 0. Почему? А патаму что выражения с интами будет интового ТИПА. И чтобы результат был циферками ПОСЛЕ запятой, надо делать примерно так:
>result = 1.0*a/b;
Тут челик всё правильно скозал:
https://www.drive2.ru/b/461279763542050331/
>Объясни для начала, что за хуйню ты хоть делаешь?
Да хочу стенд для промывки форсунок с движка сколотить на ардуине. Она, собственно, должна регулировать время открытия форсунок и интервал, между этими открытиями. Еще потом планирую ей же управлять компрессором, чтобы в ресивере давление создавать необходимое. Но там, думаю, проще будет, чем с этой поебенью.
Сейчас пытаюсь придумать, как управлять светодиодом, для наглядности. Потом заменю его на мосфет и через него буду управлять форсунками.
Собственно, я видел подобную хуитку у какого-то мужика на драйве, с уже готовым скетчем и всей хуйней-малафьей, но это же не наш путь, правда? Зачем я буду брать велосипед, когда я могу купить запчасти для велосипеда, собрать их через пизду, усесться очком на голую трубу, куда должно вставляться сидение, сидение закусить зубами и скрипя педалями отправиться в светлое нахуй?
Блядь. Просто почитай про таймеры в Атмегах. Запускаешь один таймер на 100 микросекунд, считаешь их, выполняешь открытие и закрытие форсунок и у тебя кривой ШИМ на 10КГц. 10КГц это 5000 обормотов в секунду, по причине того, что надо ОТКРЫТЬ и ЗАКРЫТЬ.
Лол, у тебя вообще будет ошибка компиляции, у тебя сначала reluslt, а потом result.
>>333898
>передача видео/звуко/потока по 3g на сайт, запись потока на флешку
Прям праздник какой-то! Какой кодек будешь использовать? Какую камеру?
>От платы хотелось бы, чтобы она потенциально все вышеупомянутое тянула, ну и + чтобы побольше возможностей для
Тебе нужны I2C и SPI. На них вешается всё, что ты хочешь. Просто прочти.
ШИМ + RC фильтр частот, это максимум. Есть ещё R2R ЦАП, но после него всё равно лучше фильтр ставить, если только тебя "лесенки" не волнуют.
Да мне не надо имитировать работу движка, мне просто надо, чтобы ардуина открывала и закрывала форсунки. Так-то можно было эту хуятину на релюшках собрать, но, как я уже и говорил, это не наш метод нихуя. Можно было и компрессор готовый взять и не ебать мозги, но я пошел по другому пути - ебанул огнетушитель возле гаража, все в порошке, как ебаная матерь, блядь. Скрутил у него башку, а там резьба хуй пойми какая метрическая - надо поебстись, чтобы дюймовую каким-то хуем с ней срастить. Потом еще компрессор с холодильника снять надо, ебись бы он конем.
В общем, решил Юзернейм заебаться так, чтобы стало ему заебись.
С выходов меги, по таймеру, получишь сигнал для управления MOSFET транзисторами ЛОГИЧЕСКОГО уровня, например 60N03. Эти малышки открываются и закрываются на 60 Ампер и 30 Вольт. Ими вполне можно открывать и закрывать форсунки с той скоростью, с которой захочешь. Ведь эти горячие штучки могут открыться и закрыться за 75 наносекунд.
>С выходов меги, по таймеру, получишь сигнал для управления MOSFET транзисторами
Ясен хуй я так и хочу сделать. Диод на данный момент прикручен для наглядности. Да и скетч я уже переписал, по подобию того, что нашел на драйве. Только вот не до конца понял еще, почему он раньше не работал, а теперь работает. Буду вникать.
НО! Возникла очень интересная идея сделать этот удлинитель независимым от ПК. Тобеж если мой пк не включен и не подаёт напряжение на Arduino, то ключ на удлинителе замкнут. Как мне так сделать? Заранее спасибо за ответ, анон.
Короче, как мне сделать удлинитель всегда замкнутым, а через пк, я мог бы контролировать размыкание ключа удлинителя?
Удлинитель 220?
Ставь блок питания туда. Есть разные.
https://www.ebay.com/itm/Hi-link-HLK-PM03-AC-DC-220V-to-5V-Step-Down-Buck-Isolated-Power-Supply-Module/112432846781
https://www.ebay.com/itm/AC-DC-110V-220V-230V-to-5V-12V-Converter-Isolated-Power-Supply-Board-Module/273301087947
https://www.ebay.com/itm/AC-DC-5V-700mA-3-5W-Power-Supply-Buck-Converter-Step-Down-Module-220V-To-5V-NEW/173470148550
Есть ещё как третий, но с синей платой и местом под LM1117 сзади. Тогда он выдаёт и 5 вольт и то, что ты там впаял.
Я их купил 10 штук, 1 поставил, а он шумит. Больше не ставил, использую первые - Hi-Link. Годные блоки, но дорогие.
Вообще по запросу "220v 5v module" найдёшь тонны моделей.
Я так понимаю, ардуины строятся на разных чипах. Дайте ссылок на самые быстрые ардуины, чтобы прям вообще оверкилл.
> Дайте ссылок на самые быстрые ардуины
https://www.chipdip.ru/product/intel-edison-breakout-kit
Удлинитель 220 - это обычный метровый удлинитель, как у бабки на даче. Провод, вилка, розетка.
Если я правильно тебя понял - то это всё, что тебе требуется сделать + в коде теперь у тебя подачей 1 будет выключать, а 0 - включать.
>Я так понимаю, ардуины строятся на разных чипах. Дайте ссылок на самые быстрые ардуины, чтобы прям вообще оверкилл.
Nucleo на STM32F7
Всё работает, как мне нужно. Целую в писю, заебися.
Я короче завис, сделал значит я трёхфазный инвертор, перечитал всю теорию, только вот нихера. Я не втупляю в какой момент нужно переключать ключи(пытаюсь увидеть ЭДС с помощью analogRead и виртуальной точки). Ардуино видит такие графики(это я снял с serial.println). Анон, если ты шариш в этой теме, подскажи смертному.
>Какие, не подскажешь?
Нет, надо искать, а мне лень, вот тебе статейка с рабочим вроде бы кодом.
http://elabz.com/bldc-motor-with-arduino-circuit-and-software/
Цэ ж картинки из аппноута AVR444. Там и код есть, правда на сях, но поскольку под капотом ардуйни тот же AVR-GCC, то оно должно скомпилиться и в среде ардуйни
http://www.gaw.ru/html.cgi/adv/app/micros/avr/AVR444.htm
А ничего, что вайфая в STM32 нету?
Ну и вообще, смотря какое видео, может у него на вход идет несжатое видео, а может наоборот камера выдает сразу H.264. Если говорить о 25 кадрах в секунду, то принять поток H.264 2 МБит/с и выдать по какому-нибудь SPI даже атмега наверное сможет. А несжатые 80 Мбит/с (ч/б видео) не факт что даже старшие STM32 смогут перегнать, но даже если справятся, то для вайфая такое многовато.
Оказывается существуют радиационно стойкие ардуины. То есть атмеги, хотя это одно и то же, если судить по форумам. А я и не знал, что такие существуют. Еще и в металлокерамическом корпусе.
Какой модуль радио/wifi посоветуете?
хомут
Поясните за UART. Можно ли? Я так понимаю, для этой шляпы нужно, чтобы был общий источник питания?
Ничо не знаю, подключаю конвертер от компа к ардуине с АКБ тремя проводами: RX, TX, GND.
> Я так понимаю, для этой шляпы нужно, чтобы был общий источник питания?
Общая земля нужна, питание не обязательно. Но смотри на логические уровни, большинство микрух не любят сигналы с уровнем выше их напряжения питания. Со стороны малинки это 3.3В, со стороны ардуйни это обычно 5В, в таком случае с TX ардуйни на RX малины нужен резисторный делитель 2:3
Блютуп или НРФ24
Да, я про проблемы с шифрованием / негласным сбором / копирайтом там на крышке модуля название выгравировано вроде как.
Джойстики показывают 2800 среднее, максимум в одну сторону - 4095, в другую - 0.
Т.е. диапазон изменений первого направления 2800, второго 1300
Во всех видео что видел - среднее было 900, максимум 1800 и все симметрично. Где я косячу?
>ESP-12F
Вот я их беру. Там улучшенная антенна по сравнению с ESP-12E и 4мб флешка в отличие от всяких ESP-01.
Я пытался на весу померять сопротивление, тоже какая-то хуйня выодит. В среднем 3.6 мегаома, в одном крайнем 0, в другом 4 мегаома. Явная хуйня, но крокодилов у меня нет, посмотреть нечем.
Запости код, хочу посмотреть что там у тебя. Вообще, откуда у тебя на входе 1800? Там 1024 значения должно быть от 0 до 1023.
Можешь ещё ESP-12S брать. Там ещё круче антенна, он меньше и нет выводов с флешки.
Чекаю бамп. Если не всплывает - пилю перекот.
В России. Покупал ESP-12/07/32. Очко целое.
Как заюзать таймер от ардуньки, чтобы он работал на фоне итерации основного кода? Заранее спасибо.
типа многопоточности?
Таймер в AVR прикрутить к прерыванию. Но это надо на чистой AVRке наверное.
1920x1080, 0:39
Что тут ставить, редуктор на 1 к 30-60?
Загугли микростеппинг.
Прошел месяц, думаю, что уже разобрался. Но таки в сравнеии надо делать ==, а не =
Учи синтаксис базовый языка, чтобы не быть батхертом.
Правда они программируются только 1 раз. И программатор стоит 100$+
Но всё же.
https://www.youtube.com/watch?v=VYhAGnsnO7w
На что ты надеешься не показывая код?
>>335724 (OP)
>>335724 (OP)
>>335724 (OP)
>>335724 (OP)
>>335724 (OP)
>>335724 (OP)
>>335724 (OP)
>>335724 (OP)
>>335724 (OP)
>>335724 (OP)
>>335724 (OP)
>>335724 (OP)
>>335724 (OP)
>>335724 (OP)
>>335724 (OP)
>>335724 (OP)
>>335724 (OP)
>>335724 (OP)
>>335724 (OP)
>>335724 (OP)
>>335724 (OP)
>>335724 (OP)
>>335724 (OP)
>>335724 (OP)
>>335724 (OP)
Вы видите копию треда, сохраненную 16 мая 2019 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.