Ви не увійшли.
Сторінки 1
mohax1685 пише:Так при першому освітленні він в один бік повертається і назад, а потім при другому освітленні він повертаєтся в інший бік і теж назад
Ну то воно приблизно так і працює https://wokwi.com/projects/436748234276620289
ніякогомалслає в одну сторону
немає
Підкажіть а піни сервоприводу я правильно розташував?
Сервопривод Micro Servo 9G
-красний - VIN
-коричневий - GMD
-жовтий - D4
Ага, я здається здогадався. Напишіть в discord, man0vvar
Отправил запрос в друзья roman_80791
По кінцевому результаті воно повинно працювати так: к ардуіно підключенний сервопривід і фоторезистор, при подачі живлення нічого не повинно обертатись, тілько після ліхтарика наведеного на фоторезистр, він обертаеється в одну сторону і повертається назад, та при наведенні світла в другий раз, він повинен обертатись в іншу сторону і ставати назад, я вже голову ломаю цілий день, я придбав цей скетч і схему по збиранню, і нічого не працює
Все так зробив але сервопривід просто знову малслає в одну сторону, мож я не так розьми підключаю або інструкція не правильна?
Так при першому освітленні він в один бік повертається і назад, а потім при другому освітленні він повертаєтся в інший бік і теж назад
mohax1685 пише:Я прикрипив файл, там є внутрі все щоб розібратись
Із тих картинок в архіві зовсім не зрозуміло, що це за пристрій, і як він має працювати.
mohax1685 пише:підкажіть будь ласка що можно спробувать?
Якщо вгадав, що при появі освітлення має повернутись в один бік і назад, а при зникненні освітлення має повернутись в інший бік і назад, то має працювати щось типу такого:
#include <Servo.h> Servo myservo; void setup() { myservo.attach(4); pinMode(A3, INPUT); myservo.write(60); Serial.begin(9600); } bool prestate; bool dir; void loop() { int val = analogRead(A3); Serial.println(val)); bool state = val > 700; if (state != prestate) { if (state && !dir) { myservo.write(120); delay(1000); myservo.write(60); dir = true; } else if (!state && dir) { myservo.write(0); delay(1000); myservo.write(60); dir = false; } prestate = state; } delay(100); }
(Не компілював, не перевіряв).
Але ж тут нема ніякого гістерезису. На граничних значеннях освітлення буде тіліпатись туди-сюди.
я спробував цей код що Ви дали, видало во це:
C:UsersРоманAppDataLocalTemp.arduinoIDE-unsaved2025617-11184-18ogwsr.rp5isketch_jul17asketch_jul17a.ino: In function 'void loop()':
C:UsersРоманAppDataLocalTemp.arduinoIDE-unsaved2025617-11184-18ogwsr.rp5isketch_jul17asketch_jul17a.ino:18:22: error: expected ';' before ')' token
exit status 1
Compilation error: expected ';' before ')' token
А до чого тут ардуїно? Програма на С. Як саме вона повинна працювати - знаєте тільки ви. Звідси видно що ті 2 змінні обробляються якось дивно.
підкажіть будь ласка що можно спробувать?
А що там розбиратись? розберіться, що у вас символізує state і що dir і як вони повинні бути пов'язані.
я Ардуино тримаю сьогодні перший раз, я зібрав по схемі і закинув готовий скетч, як би я розумів в чому помилки, я б сюди не звертався би
У вас весь цей код:
mohax1685 пише:if (dir == 0) {
myservo.write(120);
delay(1000);
myservo.write(60);
dir = 1;
} else {
myservo.write(0);
delay(1000);
myservo.write(60);
prestate = state;
dir = 0;
}виконується тільки коли state == 1. Коли state == 0, нічого взагалі не виконується.
Я прикрипив файл, там є внутрі все щоб розібратись
https://forum.arduino.ua/img/members/4105/M3.7z
Я можу вам в особисті повідомлення відправить?
Добрий день всім, я так новочок в цій сфері, але руки з потрібного місця ростут, в мене є:
1. Arduino Nano
2. Фоторезистор
3. Резистор 10 кОм
4. Сервопривод Micro Servo 9G
Я придбав креслення по збірці, суть при підсвітці фонарем серво привод повинен рухатись раз в одну сторону, при другому освітленні в іншу сторону.
Я зібрав все по схеме
Фоторезистор А3-5V
Резистор 10 кОм A3-GMD
Сервопривод Micro Servo 9G
-красний - VIN
-коричневий - GMD
-жовтий - D4
Підключив, в моніторінге фоторезистор показує значення різні, але сервопривод просто крутиться і все, що в мене не так? вот скетч котрий шов в комлекті:
#include <Servo.h>
Servo myservo;
int val;
byte state = 0;
byte prestate = 0;
byte dir = 0;
void setup() {
myservo.attach(4);
pinMode(A3, INPUT);
myservo.write(60);
Serial.begin(9600);
}
void loop() {
Serial.println(analogRead(A3));
val = analogRead(A3);
if (val > 700) {
state = 1;
} else state = 0;
if (state != prestate) {
if (state == 1)
if (dir == 0) {
myservo.write(120);
delay(1000);
myservo.write(60);
dir = 1;
} else {
myservo.write(0);
delay(1000);
myservo.write(60);
prestate = state;
dir = 0;
}
}
prestate = state;
delay(100);
}
Сторінки 1