Фотография стены
Образовательные проекты на платформе Arduino.
воскресенье, 18 марта 2018 г.
четверг, 8 февраля 2018 г.
РЕГУЛИРОВКА ЯРКОСТИ СВЕТОДИОДА ШИМ ДВУМЯ КНОПКАМИ
Ссылка на оригинал: http://publicatorbar.ru/regulirovka-yarkosti-svetodioda-shim-dvumya-knopkami/
Скопировано чтобы не потерять.
В проектах часто используются кнопки для управления. Например, одной кнопкой что-то прибавляем, другой — уменьшаем. Разберем на примере управления яркостью светодиода.
Скопировано чтобы не потерять.
В проектах часто используются кнопки для управления. Например, одной кнопкой что-то прибавляем, другой — уменьшаем. Разберем на примере управления яркостью светодиода.
НАМ ПОНАДОБИТСЯ
- Плата Arduino Uno
- Один светодиод
- Один резистор сопротивлением 220-270 Ом.
- Два резистора сопротивлением 10-100 кОм.
- Две кнопки.
- Провода
- Макетная плата
Резистор R1 ограничивает ток на светодиоде. Резисторы R2 и R3 «подтягивают» входные пины к нулю, чтобы не было ложных срабатываний. И так как управление светодиодом реализовано с помощью ШИМ (широтно-импульсная модуляция), то светодиод необходимо подключить только к определенным выводам платы ардуино.
В ардуино ШИМ можно реализовать на цифровых выводах, обозначенных PWM или ~. На плате Arduino Uno это D03, D05, D06, D10, D11. И скважность импульса задается в пределах от 0 до 255.
В данном скетче кнопка «+» с шагом 5 увеличивает яркость светодиода от 0 до 255, а кнопка «-» уменьшает.
int ledPin = 11; // Присваиваем имя ledPin цифровому выводу 11, к которому подключен светодиод int brightness =0; // переменная для задания яркости int fadeValue = 5; // шаг изменения яркости int buttonPlus=2; // Номер Pin к которому подключена кнопка "+" int buttonMinus=3; // Номер Pin к которому подключена кнопка "-" void setup() { pinMode(ledPin, OUTPUT); // Инициализируем цифровой вывод ledPin (pin 11) как выход } void loop() { // Этот цикл будет выполняться бесконечное количество раз. if (digitalRead(buttonPlus) == HIGH) { //если на выводе 2 (кнопка "+") высокий уровень (нажата), то brightness += fadeValue; // прибавляем значение яркости с шагом fadeValue } if (digitalRead(buttonMinus) == HIGH) { //если на выводе 3 (кнопка "-") высокий уровень (нажата), то brightness -= fadeValue; // уменьшаем значение яркости с шагом fadeValue } brightness = constrain(brightness, 0, 255); // Эта функция задает крайние точки диапазона
//для переменной brightness 0 и 255 analogWrite(ledPin, brightness); // устанавливаем на выводе ledPin значение яркости яркость brightness delay(50); // Пауза 50 миллисекунд. }
-----------------------------
#include <Adafruit_NeoPixel.h>
int val;
int IN1 = 9; // motor
int motorPower = 0;
int fadeValue = 5; // шаг изменения скорости
Adafruit_NeoPixel strip = Adafruit_NeoPixel(3, 6, NEO_GRB + NEO_KHZ800);
void setup()
{
Serial.begin(9600);
pinMode(IN1, OUTPUT);
strip.begin(); // инициализируем ленту
strip.show(); // выключаем ленту
}
void loop()
{
if (Serial.available())
{
val = Serial.read();
if (val == '1') // увеличиваем скорость
{
motorPower += fadeValue;
}
if (val == '2') // уменьшаем скорость
{
motorPower -= fadeValue;
}
}
if (val == '3') // зеленый
{
strip.show();
strip.setPixelColor(0, 0, 255, 0);
strip.setPixelColor(1, 0, 255, 0);
strip.setPixelColor(2, 0, 255, 0);
}
if (val == '4') // синий
{
strip.show();
strip.setPixelColor(0, 0, 0, 255);
strip.setPixelColor(1, 0, 0, 255);
strip.setPixelColor(2, 0, 0, 255);
}
if (val == '5') // красный
{
strip.show();
strip.setPixelColor(0, 255, 0, 0);
strip.setPixelColor(1, 255, 0, 0);
strip.setPixelColor(2, 255, 0, 0);
}
motorPower = constrain(motorPower, 0, 255);
analogWrite(IN1, motorPower);
delay(50);
}
понедельник, 5 февраля 2018 г.
Странное сообщение.

#include <SPI.h>
#include <Adafruit_Sensor.h>
#include <Adafruit_BME280.h>
#include <SPI.h>
#define BLYNK_PRINT Serial // Comment this out to disable prints and save space
#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>
#include <SimpleTimer.h>
#define BME_SCK 14
#define BME_MISO 12
#define BME_MOSI 13
#define BME_CS 15
#define SEALEVELPRESSURE_HPA (1011)
//connect #0,#15 -> low 220 ohm R, take #2 high - cycle
//HSPI 12-MISO, 13-MOSI, 14-CLOCK, 15-CS (16)
char auth[] = "xxxxxxxxxxxxxxxxxxxxxx";
// Your WiFi credentials.
// Set password to "" for open networks.
char ssid[] = "xxxxxxx";
char pass[] = "xxxxxxxxx";
//Adafruit_BME280 bme(BME_CS);
Adafruit_BME280 bme(BME_CS, BME_MOSI, BME_MISO, BME_SCK);
SimpleTimer timer;
void sendSensor()
{
Wire.begin(); //just added
float t = bme.readTemperature();
float p = (bme.readPressure() / 100.0F);
float h = bme.readHumidity();
float a = bme.readAltitude(SEALEVELPRESSURE_HPA);
if (isnan(t) || isnan(p) || isnan(h) || isnan(a)) {
Serial.println("Failed to read from BME sensor!");
return;
}
// You can send any value at any time.
// Please don't send more that 10 values per second.
Blynk.virtualWrite(V0, t);
Blynk.virtualWrite(V1, p);
Blynk.virtualWrite(V2, h);
Blynk.virtualWrite(V3, a);
}
void setup()
{
Serial.begin(9600);
Blynk.begin(auth, ssid, pass);
while (Blynk.connect() == false)
bme.begin();
timer.setInterval(1000L, sendSensor);
}
void loop() {
Blynk.run();
timer.run();
}
------------------------------------------------------------------------------
if (!bme.begin()) {
Serial.println("Could not find a valid BME280 sensor, check wiring!");
while (1);
}
------------------------------------------------------------------------------
#include <SPI.h>
------------------------------------------------------------------------------
Подписаться на:
Сообщения (Atom)
-
Ссылка на оригинал: http://publicatorbar.ru/regulirovka-yarkosti-svetodioda-shim-dvumya-knopkami/ Скопировано чтобы не потерять. В прое...
-
#include <SPI.h> #include <Adafruit_Sensor.h> #include <Adafruit_BME280.h> #include <SPI.h> #de...