Делаем с помощью Ардуино цветок, который следует за светом

Сегодня простой, но очень интересный урок из нескольких шагов. Мы создадим цветок (в нашем случае подсолнух), который благодаря сервоприводу и микроконтроллеру Ардуино будет двигаться за светом.

Подсолнечник следует за светом с помощью серводвигателя и двух фоторезисторов.

Шаг 1. Комплектующие

Чтобы нам собрать наш подсолнух, нужно довольно мало деталей. В данном уроке мы не рассказываем как сделать сам цветок, который будет следовать за светом благодаря сервоприводу. Здесь всё в ваших руках и мы уверены, что благодаря фантазии вы сделаете лучше вариант чем наш.

Как мы уже писали ранее, наш подсолнух следует за светом с помощью серводвигателя и двух фоторезисторов, поэтому для проекта нам пригодятся:

  • Arduino UNO × 1
  • Сервопривод × 1
  • Фоторезистор × 2
  • Перемычки

Из программного обеспечения пригодится, как и в большинстве проектов, Arduino IDE. Напоминаем, что производитель Ардуино также создал онлайн версию Arduino IDE, которую назвал Arduino Web Editor и которую можно посмотреть по ссылке.

Шаг 2. Схема соединения

Чтобы собрать наше устройство - следуйте схеме соединения ниже:

Шаг 3. Собираем устройство

На этом шаге мы собираем наше устройство, согласно принципиальной схеме выше. Как мы уже сказали выше - в данном уроке вместо подсолнуха вы можете использовать всё что вам вздумается.

Шаг 4. Код проекта

Код нашего проекта вы можете скачать или скопировать ниже. В самом начале мы подключаем библиотеку для сервопривода.

Все библиотеки можно найти на нашем сайте в разделе "Библиотеки".

#include 

int sensorPin = A0;
int servoPin  = 9;

int sensorValue = 0;
int servoGrad = 90;
int tolerance = 40;

Servo myservo;

void setup() {
  pinMode( sensorPin, INPUT);
  myservo.attach( servoPin );
  myservo.write( servoGrad );
}

void loop() {
  sensorValue = analogRead(sensorPin);
  if ( sensorValue < (512-tolerance) )
  {
    if (servoGrad < 180) servoGrad++; } if ( sensorValue > (512+tolerance) )
  {
    if (servoGrad > 0) servoGrad--;
  }

  myservo.write( servoGrad ); 

  delay(100);
}

Шаг 5. Итоговый результат

После всех шагов у нас должен получиться примерно такой результат:

Этот проект позволяет понять основную идею, из которой вы потом сможете сделать свою. Например, такое устройство поможет в работе поливальной техники, когда поливалка будет двигаться за солнцем. Или, навес для тени от солнца.

Ардуино+