Ви не увійшли.
Того ніхто не знає (ц)
Вдалось прочитати повідомлення?
Вашу картинку видно десь так
Спробуйте інакше.
Коли пишете як зареєстрований юзер - видно кнопку Завантаження.
Оце надумався зробити в теплиці автоматику, щоб вікно само відкривалось і закривалось. Готовий потужний привід коштує як пів теплиці, тому вирішив спробувати запиляти замостійно.
Ні токарного верстата ні 3Д прінтера немає, є шуруповерт, болгарка, зварювальний апарат і Епіцентр з безкоштовною доставкою
В Епіку замовив трубу 25х1.5 мм - в неї ідеально стає підшипник, 20х1.5 мм, підшипник 608 ZZ, шпильку М8 (здогадуюсь, що різьба трохи не така, але що маємо те маємо), вварні гайки. Стопорні кільця для підшипника вирізав з тієї ж труби 25 мм - відрізав сегмент 10 мм і вирівняв. Одне кільце вварив, інше - фіксується гвинтами М3. Квадратну втулку зварив з квадратної труби 16 мм, магніт зафіксував термоусадкою. Щоб шпилька не прокручувалась у втулці - зробив лиску. Гайки на шпильці зафіксував фіксатором різьби.
Мотор-редуктор склопідіймача ВАЗ - з ОЛХ.
Неодимовий магніт, мікрик, датчик Холла (аналоговий) - arduino.ua.
Чутливості датчика досить, незважаючи на метал кругом - напруга міняється від 1.5 до 2.5 В.
Можна писати код. Too bee contiiinue..
Якась ардуінофобія ... hmm
Навпаки
Якщо використовуєте Arduino Core - дивно не бути послідовними і не використовувати ардуїнівські ліби. Ви ж прямо в регістри UART не пишете? Хіба що вам ліцензійно чистий код потрібен..
Це не наш шлях ...
arduino-way це використовувати по максимуму вже написаний код.
Ну, хіба що самому цікаво погратися в С
https://docs.arduino.cc/libraries/nmeaparser/
Все вже кимсь написано
Підкажіть плз просту програму для 3Д моделювання. Побажання нескладні Намалювати циліндр, в ньому підшипник, в підшипнику вал, на валові різьба.. Моторчик, кінцевик, датчик обертів.. Щоб можна було отримати чи підігнати розміри без експериментів. І щоб були бібліотеки готових компонентів, бо вимальовувати кожну кульку в підшипнику не хочеться.
Blender пробував, щось воно не зайшло. Є щось простіше, для колгоспників?
Я використовую цю понижайку
Блін
У вас на картинці одне, напаяне щось інше..
Короче. По живленню пролазить імпульсна завада. Щось з цим робіть. Або напаюйте конденсатори, зразу з low esr, щоб 2 рази не вставати. 1000мкф. і кераміку. Або намалюйте що насправді там відбувається.
Або заживити ардуїну через окремий dc-dc конвертор. https://arduino.ua/prod5471-mini-modyl-ponijaushhego-preobrazovatelya-mp1482-mini360-v2 наприклад.
Понижайка у вас неправильна.
Потрібно конденсатори на вході і на виході, і електроліти, раз в 10 більшої ємності, і керамічні, на 0.47 мкф.
Можливо також варто задіяти watchdog timer.
https://github.com/adafruit/Adafruit-ST7735-Library/ не хочете розглянути?
google://dwin arduino library
їх дофіга
можна не гратися в реверс-інжинірінг
ЗІ
Щось форум глючить. Якісь повідомлення показує, якісь ні..
Сорян, був неправий.
Ну тоді читати https://arduino.ua/prod2423-sim800c-v2-modyl-gsm-85090018001900-bluetooth - там цілий епос.
https://arduino.ua/prod1665-gsm-modyl-na-sim800l
Звертаємо увагу, що у модуля напруга логічного високого рівня становить 2.8В, що вимагає застосування перетворювача логічних рівнів при використанні модему з контролером Arduino.
Перевищення вхідної напруги інтерфейсу UART призведе до псування модуля SIM800!
https://arduino.ua/prod2165-preobrazovatel-logicheskih-yrovnei-dvynapravlennii врятує наступним разом.
Не вірю.
+1
Але цікаво було б побачити цю історію успіху
танунафіг..
Дешевше переписати з нуля.
Стороння людина в простиню з digitalread/digitalwrite без труда не врюхає.
while(1) - можна спокійно викинути, функція loop() сама перезапускається.
FlexiTimer2 - хз що це і як воно працює, підозрюю що якась ліба з таймером. Без вивчення readme таке крпще не використовувати.
TubeDisplay4Bit - судячи з назви, щось пов"язане з дисплеєм. Але всередині там щось з секундами робиться.
В пєчьку! (ц)
ну я ж код написав..
if (digitalRead(INPUT1)==LOW)
uint8_t new_value = digitalRead(somePin);
if (new_value != prev_value)
{
prev_value = new_value;
do_some_shit()uint8_t new_value = digitalRead(somePin);
if (new_value != prev_value)
{
prev_value = new_value;
if (new_value == LOW)
need_start = true;
};
}
if (need_start) {need_start = false;...}
Ну я в же один раз пропонував використовувати не низький рівень, а перехід з високого рівня в низький.
Взагалі бажано спочатку намалювати на папірці якісь графіки-квадратики-стрілки, а вже потім хапатись кодити. Бо по перше у вас вийде код, який складно читати. По друге, вам буде складно вносити туди зміни.
Намалюйте на папірці діаграму входного сигналу і все вам стане ясно
uint_8t prev_value;
void setup()
{
prev_value = digitalRead(somePin);
}
void loop()
{
uint8_t new_value = digitalRead(somePin);
if (new_value != prev_value)
{
prev_value = new_value;
do_some_shit();
}
}
Десь так.
Якщо треба щоб воно реагувало не на будь яку зміну сигналу, а лише на ввімкнення - добавте ще один if, я впевнений, все вийде
Якщо треба вміти ловити сигнал під час роботи 5 секундної функції, значить треба робити інакше. На перериваннях, наприклад.
Дивитись код всередині архіву неспортивно Акби воно на гітхабі було, з синтаксисом..
Спробую вгадати.
Ви в циклі міряєте логічний рівень на якомусь піні. Якщо там 1 - запускаєте якийсь процес довжиною 5 сек. Коли процес закінчується - там знову все ще 1.
Рішення таке: треба порвінювати рівень який зараз з попереднім рівнем; якщо вони відрізняються, тоді щось робити.
Ну, дешева китайська електроніка це завжди трошки лотерея
2s charger module
https://vi.aliexpress.com/item/1005004987094908.html наприклад.
Якщо необхідно щоб від usb - беріть з usb
Якщо потрібно щоб з балансуванням - https://vi.aliexpress.com/item/1005006570395304.html