Ви не увійшли.
взято attiny85 замість ардуіно
Який саме board package використовуєте для attiny85? Ви впевнені, що в ньому піни нумеруються константами з avr/io.h ( pinMode(PB3, INPUT) ) і в той же час ардуінівськими ( pinMode(A1, INPUT) )?
Sketch.rar
Форматування коду навмисно прибране, щоб складніше було читати?
Із назвами змінних Flag, Flag2, Flag3 та значеннями '1' і '2' задуману логіку зрозуміти досить непросто. Намалюйте діаграму переходів між станами, визначте умови переходів. Зробіть enum зі зрозумілими назвами.
pulseIn() повертає unsigned long (діапазон ≈ 0 .. 4295 секунд), ви його присвоюєте в int (діапазон ≈ -33 .. 33 мілісекунди).
Не викликайте millis() кожний раз. Прочитайте значення один раз на ітерацію і використовуйте його:
void loop() {
unsigned long now = millis();
...
timer1 = now;
timer2 = now;
...
Якщо воно то працює то ні - можливо щось підвисає. Може провали по живленню. Може конденсатора десь не хватає. Чи LDO. Чи watchdog.
І я не впевнений що використовувати tiny 85 досить гарна ідея. Можна взяти STM, чи arduino nano - по $$ особливої різниці немає, якщо це щось одноразове. Зате незручностей цілий мішок.
Усім привіт. Потрібна допомога чи підсказка що можить бути не так. Маю attiny85, живлення іде з DC-DC перетворювача 12В, далі на лінійний стабілізатор 5В з усією положеною розвязкою по конденсаторам з даташиту, стоїть резистор 4,7кОм підтяжки живлення на першу ногу, прошиваю голий камінь з допомогою USBasp та ардуіно, скрін з налаштуваннями прикріплю, сам скетч дещо змінений з оцієї статті https://arduino.ua/art168-cifrovii-serv … arametrami Суть скетчу впринципі розписана там же в статті, єдине що змінено так це взято attiny85 замість ардуіно, сигнал для керування іде з сервотестера замість резистора і додано таймери, для того щоб коли двигун за певний час не можить досягнути положення він вимикається і можить ввімкнутисяч лише в обратну сторону. Все працює добре, але є одне але, іноді при включенні не працюють таймери, тобто він продовжує обертатися навіть коли не можить досягнути положення за 350мс, в ході експерементів вияснив, що коли відкинути + живлення з attiny85 потім знову подати, при цьому вся схема заживлена, тобто подається наприклад 2,5В на сьому ножку з резистора положення при середньому положенні двигуна, то таймер перестає працювати, тобто все знову працює і реагує правильно на сервотестер, але при цьому не вимикається через 350мс якщо не давати мотору досягти потрібного кута. Дана схема пропрацювала місяць, після чого згорів мотор, в ході експерементів і пошуків вияснилося, що іноді таймер не працює і більш всього що при ввімкненні живлення він і не спрацював, що призвело до згорання двигуна. Можливо хтось щось порадить, як позбутися даної проблеми. Також якщо замість analogWrite(PB0, 255) вказати digitalWrite(PB0, HIGH), взагалі нічого не працює, хоча це впринципі не є проблемою. https://forum.arduino.ua/img/members/3566/Sketch.rar https://forum.arduino.ua/img/members/35 … 54-714.jpg