Новости проекта
С Новым годом и Рождеством!
Разъяснение ситуации с рекламой и предупреждением МАРТ
Обновленные функции Schools.by
Голосование
Пользуетесь ли вы мобильным приложением Schools.by?
Всего 0 человек

Робототехника

Дата: 19 января 2017 в 00:14, Обновлено 9 февраля 2017 в 00:04

Проект на базе Ардуино  "Освещение школьного двора"

 

 

Список деталей:

·         плата Arduino Mega;

·         светодиоды;

·         резисторы номиналом 220 Ом;

·         фоторезистор;

·         провода соединительные;

·         ультразвуковой дальномер;

·         лазерный указатель;

·         датчик дневного и ночного освещения на основе солнечной батареи.

Схема проекта:

 

Скетч программы:

#include "Ultrasonic.h"

Ultrasonic ultrasonic(11, 12);

int solarInPin = A0;  // solar panel

int laserInpin = A1; // sensor laser

int laserOnPin = 52; // laser on pin

int myLampsPin[] = {2, 3, 4, 5, 6, 7};

int pinCount = 8;

int brightness = 1023;

int solarInPinRead = 0;

int laserInPinRead = 0;

int sonarValue = 0;        // value read from the pot

int lamligth = 0;

int ligthOutputValue = 0;        // value output to the PWM (analog out)

void setup() {

  pinMode(laserOnPin, OUTPUT);

  digitalWrite(laserOnPin, LOW);

  for (int thisPin = 0; thisPin < pinCount; thisPin++) {

    pinMode(myLampsPin[thisPin], OUTPUT);

    digitalWrite(myLampsPin[thisPin], LOW);

  }

  Serial.begin(9600);

}

void loop() {

  solarInPinRead = analogRead(solarInPin);

  laserInPinRead = analogRead(laserInpin);

  int dist_cm = ultrasonic.Ranging(CM);   // get distance

  Serial.println(dist_cm);          // print the distance

  lamligth = dist_cm;

  if (dist_cm <= 78) {

    analogWrite(myLampsPin[0], lamligth * 7.5);

    analogWrite(myLampsPin[1], lamligth * 7.5);

    analogWrite(myLampsPin[3], lamligth * 7.5);

    Serial.println(lamligth);

  } else {

    analogWrite(myLampsPin[0], LOW);

    analogWrite(myLampsPin[1], LOW);

    analogWrite(myLampsPin[3], LOW);

  }

  Serial.print("Pokzaniya solnechoi paneli ");

  Serial.println(solarInPinRead);

  Serial.print("Pokzaniya priemnika signala lasera ");

  Serial.println(laserInPinRead);

  if (solarInPinRead <= 225)  // solar

  {

    // 600

    Serial.println(" Night & sleep");

    Serial.println(" All is good");

    digitalWrite(laserOnPin, HIGH);

    if (laserInPinRead < 245)  // laser

    {

      // 485

      Serial.println(" ALARM Who here?");

      for (int thisPin = 0; thisPin < pinCount; thisPin++) {

        analogWrite(myLampsPin[thisPin], brightness);

        delay(1000);

      }

      delay(1000);

      for (int thisPin = pinCount; thisPin >= 0; thisPin--) {

        for (brightness = 1023; brightness >= 0; brightness--) {

          analogWrite(myLampsPin[thisPin], brightness);

          delay(1);

          // Serial.println(brightness);

        }

      }

    }

  } else {

    Serial.println(" Day");

    digitalWrite(laserOnPin, LOW);

  }

}

Комментарии:
Оставлять комментарии могут только авторизованные посетители.