Эксперимент № 9. RGB светодиод

RGB светодиод (R – red, G – green, B — blue) – это многоцветный (или полноцветный) светодиод, который может светиться различными цветами благодаря смешиваю 3х цветов (красный, зеленый, синий) различной Дальше →

Скетч. Эксперимент № 9. RGB светодиод

/**
 * (C) jarduino.ru 2019
 * Изучение ардуино через опыты.
 *
 * Эксперимент № 9. Полноцветный светодиод.
 */

// Глобальные переменные
// Привязка контактов к портам платы:
int pinRed = 11; // пин для красного контакта
int pinBlue = 10; //  пин для синего контакта
int pinGreen = 9; //  пин для зеленого контакта


void setup()
{
	pinMode(pinRed, OUTPUT);
	pinMode(pinBlue, OUTPUT);
	pinMode(pinGreen, OUTPUT);

	Serial.begin(9600);
}

void loop()
{
	int val;

	for (val = 255; val > 0; val--)
	{
		analogWrite(pinRed, val);
		analogWrite(pinBlue, 255 - val);
		analogWrite(pinGreen, 128 - val);

		delay(1);
	}

	for (val = 0; val < 255; val++)
	{
		analogWrite(pinRed, val);
		analogWrite(pinBlue, 255 - val);
		analogWrite(pinGreen, 128 - val);
		delay(1);
	}

	Serial.println(val, DEC);
}


Эксперимент № 6. Светодиод, управляемый кнопкой

В этом эксперименте мы сделаем светодиод, управляемый кнопкой: при нажатии на кнопку светодиод будет зажигаться, при отпускании – гаснуть. До этого момента мы использовали цифровой порт лишь для вывода (OUTPUT), Дальше →

Скетч. Светодиод, управляемый кнопкой.

/**
 * (C) jarduino.ru 2019
 * Изучение ардуино через опыты.
 *
 * Эксперимент №6. Светодиод, управляемый кнопкой.
 * Светодиод горит, если кнопка нажата.
 */

int pinLed = 11; // Порт для подключения светодиода
int pinBtn = 7; // Порт для подключения кнопки

void setup()
{
	pinMode(pinLed, OUTPUT); // Порт светодиода включить на вывод
	pinMode(pinBtn, INPUT); // Порт кнопки включить на ввод
}

void loop()
{
	int btnVal; // переменная для чтения занчения с кнопки
	btnVal = digitalRead(pinBtn); // считать значение с пина кнопки

	if (btnVal == LOW) // Проверить, нажата ли кнопка
	{
		digitalWrite(pinLed, LOW); // Кнопка не нажата - выключить светодиод
	}
	else
	{
		digitalWrite(pinLed, HIGH); // Кнопка нажата - включить светодиод
	}
}

Эксперимент № 5. Эффект преследования

В этом эксперименте мы начнем постигать основы анимации светодиодов, реализовав эффект преследования.
Мы поупражняемся в применении циклов для достижения различных эффектов свечения линейки из светодиодов.
Дальше →

Скетч. Светофор на ардуино. V2

/**
 * (C) jarduino.ru 2019
 * Изучение ардуино через опыты.
 *
 * Опыт №4.2 Светофор, продолжение
 * 
 * Использование функций для минимизации повторяющихся фрагментов
 */


// Глобальные константы
const int pinRedLed = 12; // красный подключен к порту 12
const int pinYellowLed = 9; // желтый подклчен к порту 9
const int pinGrenLed = 6; // зеленый подключен к порту 6

const int lightDelay = 5000; // продолжительность свечения зеленого и крассного
const int blinkDelay = 500; // полупериод мигания
const int yelloDelay = 1000; // полупериод мигания
const int blinkTimes = 3; // число миганий

const float delayMultiply = 0.1; // число миганий

// настройка платы
void setup()
{
  // инициализировть цифровые порты светофора на вывод:
  pinMode(pinRedLed, OUTPUT);
  pinMode(pinYellowLed, OUTPUT);
  pinMode(pinGrenLed, OUTPUT);
}

// Функция зажигает заданный светодиод на заданное время и гасит его.
void lightUp(const int pinLed, const int nDelay)
{
  digitalWrite(pinLed, HIGH); //// turn on green LED
  delay(nDelay);
  digitalWrite(pinLed, LOW); // turn off green LED
}

// Функция мигает светодиодом с заданным полупериодом заданное число раз
void blink(
  const int pinLed, // пин светодиода
  const int nDelay, // полупериод мигания
  const int nTimes // число миганий
)
{
  for (int i = 0; i < nTimes; ++i) // blinks for 3 times
  {
    delay(nDelay);
    lightUp(pinLed, nDelay);
  }
}

// Главный цикл программы
void loop()
{
  // Зажечь зеленый
  lightUp(pinGrenLed, lightDelay * delayMultiply);

  // Помигать зеленым
  blink(pinGrenLed, blinkDelay * delayMultiply, blinkTimes);

  // Ненадолго зажечь желтый
  lightUp(pinYellowLed, yelloDelay * delayMultiply);

  // Зажечь красный
  lightUp(pinRedLed, lightDelay * delayMultiply);
}

Опыт №4. Светофор. Скетч №1

/**
 * (C) jarduino.ru 2019
 * Изучение ардуино через опыты.
 *
 * Опыт №4 Светофор. Скетч №1
 * Независимое управление 3-мя светодиодами на примере работы светофора.
 */


// Глобальные константы
const int pinRedLed = 12; // красный подключен к порту 12
const int pinYellowLed = 9; // желтый подклчен к порту 9
const int pinGreenLed = 6; // зеленый подключен к порту 6

const int lightDelay = 2000; // продолжительность свечения зеленого и крассного
const int blinkDelay = 100; // полупериод мигания
const int blinkTimes = 3; // число миганий
const int delayMult = 1; // множитель, ускоряющий работу светофора в указанное здесь число раз

// настройка платы
void setup()
{
  // инициализировть цифровые порты светофора на вывод:
  pinMode(pinRedLed, OUTPUT);
  pinMode(pinYellowLed, OUTPUT);
  pinMode(pinGreenLed, OUTPUT);
}

// главный цикл программы
void loop()
{
  // сначала горит зеленый
  digitalWrite(pinGreenLed, HIGH);
  delay(lightDelay * delayMult);
  digitalWrite(pinGreenLed, LOW);

  // зеленый мигает и гаснет
  for (int i = 0; i < blinkTimes; ++i) // blinks for 3 times
  {
    delay(blinkDelay * delayMult);
    digitalWrite(pinGreenLed, HIGH);

    delay(blinkDelay * delayMult);
    digitalWrite(pinGreenLed, LOW);
  }

  // ненадолго зажигается желтый
  digitalWrite(pinYellowLed, HIGH);
  delay(200 * delayMult);
  digitalWrite(pinYellowLed, LOW);

  // зажигается красный
  digitalWrite(pinRedLed, HIGH);
  delay(lightDelay * delayMult);
  digitalWrite(pinRedLed, LOW);

  // красный мигает и гаснет
  for (int i = 0; i < blinkTimes; ++i) // blinks for 3 times
  {
    delay(blinkDelay * delayMult);
    digitalWrite(pinRedLed, HIGH);

    delay(blinkDelay * delayMult);
    digitalWrite(pinRedLed, LOW);
  }

  // ненадолго зажигается желтый
  digitalWrite(pinYellowLed, HIGH);
  delay(200 * delayMult);
  digitalWrite(pinYellowLed, LOW);
}

Эксперимент № 3. ШИМ. Управление яркостью светодиода

Введение. Понятие ШИМ Широко-импульсная модуляция (сокращенно ШИП) — это техника, используемая для преобразования аналогового сигнала в цифровой. Ведь компьютер не может выдавать аналоговый сигнал: выходы цифровой техники могут принимать только Дальше →