Відповісти

Введіть повідомлення і натисніть Надіслати
Параметри

Назад

Огляд теми (нові повідомленні вгорі)

г0сть
2022-05-28 18:15:28

Скільки?

Evhen
2022-05-28 17:46:19

потрібен новий код

г0сть
2022-05-28 16:16:01

Так что нужно то? Подсказка или готовый код? Если подсказывать то, например, можно так, заводишь переменную-счетчик и при каждом срабатывании датчика увеличиваешь на 1 ее значение. При нечетном значении включаешь первую серву, при четном - вторую. Или заводишь переменную-флаг, сработал датчик, флаг поднял, включил первую серву. Сработал опять датчик и флаг поднят - включаешь вторую серву, флаг сбрасываешь и так далее. Если нужен готовый код - что взамен?

Evhen
2022-05-28 14:07:25

Потрібно внести зміни в код, замість спрацювання 2-х серводвигунів від 2-х різних фотоелементів, потрібно спрацювання першого серводвигуна від першого блимання фотоелемента та спрацювання 2-го серводвигуна від другого блимання тогож фотоелемента.

#include "Servo.h"
#define servo     9
#define servo2    10
#define photo     A0
#define photoGnd  A1
#define photo2    A2
#define photoGnd2 A3
#define led       13

uint32_t  timer;
Servo myservo;
Servo myservo2;

void setup() {
  pinMode(photo, INPUT_PULLUP);
  pinMode(photoGnd, OUTPUT);
    pinMode(photo2, INPUT_PULLUP);
  pinMode(photoGnd2, OUTPUT);
  pinMode(led, OUTPUT);
  digitalWrite(led, LOW);
  digitalWrite(photoGnd, LOW);
  digitalWrite(photoGnd2, LOW);
  myservo.attach(servo);
  myservo2.attach(servo2);
  myservo.write(10);myservo2.write(10);
  Serial.begin(9600);
  delay(500);
  timer = millis() + 2000;
}

void loop() {
  //Serial.println(analogRead(photo2));
  //delay(300);
  if (millis() >= timer) {
    timer += 2000;
    digitalWrite(led, HIGH);
    delay(10);
    digitalWrite(led, LOW);
  }

  if (analogRead(photo) <= 25) {
    myservo.write(100);
    delay(100);
  } else {
    if (analogRead(photo) >= 32) {
      myservo.write(10); delay(300);
    }
  }

    if (analogRead(photo2) <= 25) {
    myservo2.write(100);
    delay(100);
  } else {
    if (analogRead(photo2) >= 32) {
      myservo2.write(10); delay(300);
    }
  }
}

г0сть
2022-05-14 15:03:43

В интернете закончились?  smile
А тинька есть в наличии? Тогда пробуйте эту библиотеку https://github.com/digistump/DigisparkArduinoIntegration/tree/master/libraries/DigisparkSimpleServo

Evhen
2022-05-14 14:52:58
г0сть пише:

Чем указанный в #1 про мини не подходит?

поки не знайшов в кого купити sad

г0сть
2022-05-14 13:12:55

Чем указанный в #1 про мини не подходит?

Evhen
2022-05-14 13:11:33
г0сть пише:

В отличие от обычной ардуины для тиньки с библиотеками под серву полная неразбериха. Нужно будет или писать самому или разбираться с существующим зоопарком.

А який порадите контролер, аби уникнути можливих затиків?

г0сть
2022-05-14 12:44:27

В отличие от обычной ардуины для тиньки с библиотеками под серву полная неразбериха. Нужно будет или писать самому или разбираться с существующим зоопарком.

Evhen
2022-05-14 12:33:28
г0сть пише:

подходит, но нужно уметь готовить тиньку с сервой

а можна докладніше? Чи ліпше взяти інший контролер?

г0сть
2022-05-14 10:58:52
Krom пише:

Для скидання краще таки робити нормальний скетч, ісе ж безпека

Ну да, SG90 страшная мясорубка  big_smile

Krom
2022-05-14 10:04:13
Evhen пише:

Хто може здопомогти вирішити наступну задачу:
Задача: сворення автономного пристроя що забазпечує оберання вала серводвигуна SG90 на 45 град. від світлового сигнала та повертання на місце після зникнення сигнала.
Варіант комплета:
- Серводвигун SG90
- Акумулятор GEB502040 3.7V 380mAh
- PCM Модуль Заряда TP4056 5V
- LM393 Датчик інтенсивності світла фотодіод (3 pin)
- Включатель
- Arduino Pro Mini 5V

Для скидання краще таки робити нормальний скетч, ісе ж безпека

г0сть
2022-05-13 19:07:41

подходит, но нужно уметь готовить тиньку с сервой

Evhen
2022-05-13 16:51:40

ATtiny85 USB від Digispark підходить?

г0сть
2022-05-13 15:15:22

Если я правильно понял за датчик,то достаточно просто проверять наличие 1 на входе и поворачивать серву.

Підвал форуму