11 февраля 2016 г.

Светофор

И вот она - школа! До конца года нужно сделать проект по информатике. Понятно, что Pascal или C никто не преподает в пятом классе. Честно говоря, я понятия не имею, что прохдят по информатике в этом возрасте. У нас был алгоритм Ханойских башен, причем на бумаге. Ладно, поскольку не детям это делать, а родителям, придется подумать. В целом можно совместить мое новое увлечение с проектом ребенку. Давайте начнем с малого - сделаем светофор. Да, его можно сделать двумя способами - при помощи транзисторов и конденсаторов или при помощи Arduino. Я не беру в расчет микрочипы с таймером. Не будем искать легких путей - возьмем Arduino. Если думать о серийном производстве - это не рентабельно, но мы учимся работать с этой платой.
Итак, для этого макета нам понадобятся:

Соединим диоды красный, желтый и зеленый с пинами 8, 9 и 10 соответственно. Конечно, не забудем про землю! Далее, для Arduino нам потребуется скетч (код программы). В нем мы будем включать нужный диод, ждать и переключаться на следующий.

int redPin = 8;   // Красный диод
int yellowPin = 9;  // Желтый диод
int greenPin = 10;  // Зеленый диод
 
void setup() {
  // Говорим, что все диоды это вывод
  pinMode(redPin, OUTPUT);
  pinMode(yellowPin, OUTPUT);
  pinMode(greenPin, OUTPUT);
}
 
// Функция для включения нужного диода
void light(int pin){
  // Включаем нужный диод
  digitalWrite(pin, HIGH);
 
  // Выключаем все остальные
  if(pin != redPin){
    digitalWrite(redPin, LOW);
  }
  if(pin != yellowPin){
    digitalWrite(yellowPin, LOW);
  }
  if(pin != greenPin){
    digitalWrite(greenPin, LOW);
  }
}
 
// Постоянно работающая функция
void loop() {
  light(redPin);  // Включаем красный
  delay(2000);   // Ждем 2 секунды
  light(yellowPin);  // Включаем желтый
  delay(1000);   // Ждем 1 секунду
  light(greenPin);  // Включаем зеленый
  delay(2000);   // Ждем 2 секунды
  light(yellowPin);  // Включаем желтый
  delay(1000);   // Ждем 1 секунду
  // и все сначала...
}

Все готово, можно запускать! Посмотреть можно тут.



Комментариев нет:

Отправить комментарий