v0.5.3
- начальный загрузчик для плат elbear, elsomik обновлен до версии 0.2.0 - исключено появление краткосрочных просадок при работе ШИМ с максимальным коэффициентом заполнения - добавлена возможность пропускать код стандартного обработчика прерываний при использовании пользовательского обработчика - добавлена возможность конфигурирования вывода на вход с притяжкой к земле (INPUT_PULLDOWN) - исправление известных ошибок
This commit was merged in pull request #29.
This commit is contained in:
1 parent
8a675b2f61
commit
0fbfd77518
42 files changed
+1007
-762
No files matched your search
@@ -1,13 +1,22 @@
|
||||
// задать пин, к которому подсоединен светодиод
|
||||
#ifdef LED_BUILTIN // для плат Elbear/Start можно использовать встроенный светодиод
|
||||
uint8_t ledPin = LED_BUILTIN;
|
||||
#elif defined(ARDUINO_ELSOMIK) // для плат Elsomik нужно задать вывод
|
||||
uint8_t ledPin = P0_0;
|
||||
#else
|
||||
uint8_t ledPin = 2;
|
||||
#endif
|
||||
|
||||
// функция настройки запускается один раз при нажатии кнопки reset или подаче питания на плату
|
||||
void setup() {
|
||||
// Инициализация пина P0_3 как выход
|
||||
pinMode(LED_BUILTIN, OUTPUT);
|
||||
// Инициализация пина как выход
|
||||
pinMode(ledPin, OUTPUT);
|
||||
}
|
||||
|
||||
// функция цикла выполняется снова и снова бесконечно
|
||||
void loop() {
|
||||
digitalWrite(LED_BUILTIN, HIGH); // включить светодиод (HIGH - высокий уровень напряжения)
|
||||
delay(1000); // Секунда ожидания
|
||||
digitalWrite(LED_BUILTIN, LOW); // выключить светодиод (LOW - низкий уровень напряжения)
|
||||
delay(1000); // Секунда ожидания
|
||||
digitalWrite(ledPin, HIGH); // включить светодиод (HIGH - высокий уровень напряжения)
|
||||
delay(1000); // Секунда ожидания
|
||||
digitalWrite(ledPin, LOW); // выключить светодиод (LOW - низкий уровень напряжения)
|
||||
delay(1000); // Секунда ожидания
|
||||
}
|
||||
@@ -1,22 +1,37 @@
|
||||
// задать пин, к которому подсоединен светодиод
|
||||
#ifdef LED_BUILTIN // для плат Elbear/Start можно использовать встроенный светодиод
|
||||
uint8_t ledPin = LED_BUILTIN;
|
||||
#elif defined(ARDUINO_ELSOMIK) // для плат Elsomik нужно задать вывод
|
||||
uint8_t ledPin = P0_0;
|
||||
#else
|
||||
uint8_t ledPin = 2;
|
||||
#endif
|
||||
|
||||
// задать пин, к которому подсоединена кнопка
|
||||
#ifdef BTN_BUILTIN // для плат Elbear Ace-Uno/Start можно использовать встроенную кнопку
|
||||
uint8_t btn_pin = BTN_BUILTIN;
|
||||
#elif defined(ARDUINO_ELSOMIK) // для плат Elsomik нужно задать вывод в формате порт-вывод
|
||||
uint8_t btn_pin = P0_1;
|
||||
#else
|
||||
uint8_t btn_pin = 4; // для платы Elbear Ace-Nano нужно задать номер цифрового вывода
|
||||
#endif
|
||||
|
||||
int buttonS = 0; // задаем переменную для хранения состояния кнопки
|
||||
|
||||
// функция настройки запускается один раз при нажатии кнопки reset или подаче питания на плату
|
||||
void setup() {
|
||||
pinMode(LED_BUILTIN, OUTPUT); // P0_3
|
||||
pinMode(LED_BUILTIN1, OUTPUT); // P1_3
|
||||
pinMode(BTN_BUILTIN, INPUT); // P0_8
|
||||
pinMode(ledPin, OUTPUT);
|
||||
pinMode(btn_pin, INPUT);
|
||||
}
|
||||
|
||||
// функция цикла выполняется снова и снова бесконечно
|
||||
void loop() {
|
||||
buttonS = digitalRead(BTN_BUILTIN); // считываем значение с кнопки
|
||||
if (buttonS == 0) // если кнопка нажата, то
|
||||
buttonS = digitalRead(btn_pin); // считываем значение с кнопки
|
||||
if (buttonS == 0) // если кнопка нажата, то
|
||||
{
|
||||
digitalWrite(LED_BUILTIN, HIGH); // включить светодиод на пине P0_3
|
||||
digitalWrite(LED_BUILTIN1, LOW); // выключить светодиод на пине P1_3
|
||||
} else // если кнопка отпущена, то
|
||||
digitalWrite(ledPin, HIGH); // включить светодиод
|
||||
} else // если кнопка отпущена, то
|
||||
{
|
||||
digitalWrite(LED_BUILTIN, LOW); // выключить светодиод на пине P0_3
|
||||
digitalWrite(LED_BUILTIN1, HIGH); // включить светодиод на пине P1_3
|
||||
digitalWrite(ledPin, LOW); // выключить светодиод
|
||||
}
|
||||
}
|
||||
@@ -1,14 +1,29 @@
|
||||
const int button1Pin = P0_2; // кнопка №1 - пин P0_2
|
||||
const int button2Pin = P0_3; // кнопка №2 - пин P0_3
|
||||
const int ledPin = P1_3; // пин P1_3, для светодиода
|
||||
// задать пин, к которому подсоединен светодиод
|
||||
#ifdef LED_BUILTIN // для плат Elbear/Start можно использовать встроенный светодиод
|
||||
uint8_t ledPin = LED_BUILTIN;
|
||||
#elif defined(ARDUINO_ELSOMIK) // для плат Elsomik нужно задать вывод
|
||||
uint8_t ledPin = P0_0;
|
||||
#else
|
||||
uint8_t ledPin = 2;
|
||||
#endif
|
||||
// задать пины, к которым подсоединены кнопки
|
||||
#if defined(ARDUINO_ELSOMIK) || defined(ARDUINO_START_MIK32_V1)
|
||||
// для плат Elsomik и Start задать пины в формате порт_вывод
|
||||
const int button1Pin = P0_2; // кнопка №1
|
||||
const int button2Pin = P0_3; // кнопка №2
|
||||
#else
|
||||
// для плат Elbear задать номера цифровых выводов
|
||||
const int button1Pin = 3; // кнопка №1
|
||||
const int button2Pin = 4; // кнопка №2
|
||||
#endif
|
||||
|
||||
// функция настройки запускается один раз при нажатии кнопки reset или подаче питания на плату
|
||||
void setup() {
|
||||
// Установим пины кнопок как входящие:
|
||||
// Установим пины кнопок как входы:
|
||||
pinMode(button1Pin, INPUT);
|
||||
pinMode(button2Pin, INPUT);
|
||||
|
||||
// Установим пин светодиода как исходящий:
|
||||
// Установим пин светодиода как выход:
|
||||
pinMode(ledPin, OUTPUT);
|
||||
}
|
||||
|
||||
@@ -18,7 +33,7 @@ void loop() {
|
||||
|
||||
/*
|
||||
* Здесь мы читаем текущее состояние кнопок и помещаем их значение
|
||||
* в две пепременные.
|
||||
* в две переменные.
|
||||
*/
|
||||
button1State = digitalRead(button1Pin);
|
||||
button2State = digitalRead(button2Pin);
|
||||
@@ -26,7 +41,7 @@ void loop() {
|
||||
if (((button1State == LOW) || (button2State == LOW)) // Проверяем нажата ли только одна из кнопок
|
||||
&& !((button1State == LOW) && (button2State == LOW))) {
|
||||
digitalWrite(ledPin, HIGH); // Включаем светодиод
|
||||
} else // иначе
|
||||
} else // иначе
|
||||
{
|
||||
digitalWrite(ledPin, LOW); // Выключаем светодиод
|
||||
}
|
||||
|
||||
+17
-2
@@ -1,5 +1,20 @@
|
||||
const int ledPin = LED_BUILTIN; // Пин P0_3 для светодиода.
|
||||
const int sensorPin = P1_5; // Пин, к которому подключается средний вывод потенциометра.
|
||||
// задать пин, к которому подсоединен светодиод
|
||||
#ifdef LED_BUILTIN // для плат Elbear/Start можно использовать встроенный светодиод
|
||||
uint8_t ledPin = LED_BUILTIN;
|
||||
#elif defined(ARDUINO_ELSOMIK) // для плат Elsomik нужно задать вывод
|
||||
uint8_t ledPin = P0_0;
|
||||
#else
|
||||
uint8_t ledPin = 2;
|
||||
#endif
|
||||
// задать пин, к которому подключается средний вывод потенциометра
|
||||
#if defined(ARDUINO_ELSOMIK) || defined(ARDUINO_START_MIK32_V1)
|
||||
// для плат Elsomik и Start задать пин в формате порт_вывод. Пин должен поддерживать АЦП измерения
|
||||
const int sensorPin = P1_5;
|
||||
#else
|
||||
// для плат Elbear задать номер аналогового вывода
|
||||
const int sensorPin = A0;
|
||||
#endif
|
||||
|
||||
int sensorValue = 0; // Переменная для хранения значения потенциометра
|
||||
|
||||
// функция настройки запускается один раз при нажатии кнопки reset или подаче питания на плату
|
||||
|
||||
@@ -1,11 +1,24 @@
|
||||
// Имена для пинов светодиода и потенциометра (англ potentiometr или "pot")
|
||||
#define LED_PIN P0_0
|
||||
#define POT_PIN P1_5
|
||||
// задать пин, к которому подсоединен светодиод
|
||||
#ifdef LED_BUILTIN // для плат Elbear/Start можно использовать встроенный светодиод
|
||||
uint8_t ledPin = LED_BUILTIN;
|
||||
#elif defined(ARDUINO_ELSOMIK) // для плат Elsomik нужно задать вывод
|
||||
uint8_t ledPin = P0_0;
|
||||
#else
|
||||
uint8_t ledPin = 2;
|
||||
#endif
|
||||
// задать пин, к которому подключается средний вывод потенциометра
|
||||
#if defined(ARDUINO_ELSOMIK) || defined(ARDUINO_START_MIK32_V1)
|
||||
// для плат Elsomik и Start задать пин в формате порт_вывод. Пин должен поддерживать АЦП измерения
|
||||
const int sensorPin = P1_5;
|
||||
#else
|
||||
// для плат Elbear задать номер аналогового вывода
|
||||
const int sensorPin = A0;
|
||||
#endif
|
||||
|
||||
// функция настройки запускается один раз при нажатии кнопки reset или подаче питания на плату
|
||||
void setup() {
|
||||
// Установим пин светодиода как выход
|
||||
pinMode(LED_PIN, OUTPUT);
|
||||
pinMode(ledPin, OUTPUT);
|
||||
}
|
||||
|
||||
// функция цикла выполняется снова и снова бесконечно
|
||||
@@ -18,7 +31,7 @@ void loop() {
|
||||
* микроконтроллер выдаст число от 0 до 1023
|
||||
* пропорциональное углу поворота ручки.
|
||||
*/
|
||||
rotation = analogRead(POT_PIN);
|
||||
rotation = analogRead(sensorPin);
|
||||
|
||||
/*
|
||||
* В brightness записывается полученное ранее значение rotation
|
||||
@@ -29,7 +42,7 @@ void loop() {
|
||||
brightness = rotation / 4;
|
||||
|
||||
// Итоговое напряжение подается на светодиод.
|
||||
analogWrite(LED_PIN, brightness);
|
||||
analogWrite(ledPin, brightness);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -1,7 +1,16 @@
|
||||
// Имена пинов для светодиодов
|
||||
// задать пины, к которым подсоединен светодиод. Пины должны поддерживать функцию ШИМ
|
||||
#if defined(ARDUINO_ELSOMIK) || defined(ARDUINO_START_MIK32_V1)
|
||||
// для плат Elsomik и Start задать пины в формате порт_вывод
|
||||
const int RED_PIN = P0_0;
|
||||
const int GREEN_PIN = P0_1;
|
||||
const int BLUE_PIN = P0_2;
|
||||
#else
|
||||
// для плат Elbear задать номера цифровых выводов
|
||||
const int RED_PIN = 3;
|
||||
const int GREEN_PIN = 5;
|
||||
const int BLUE_PIN = 6;
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Следующая переменная контролирует, насколько быстро выполняется цикл по смене
|
||||
|
||||
+16
-3
@@ -1,6 +1,19 @@
|
||||
// Константы с именами для используемых пинов.
|
||||
const int sensorPin = P1_5;
|
||||
const int ledPin = P0_0;
|
||||
// задать пин, к которому подсоединен светодиод
|
||||
#ifdef LED_BUILTIN // для плат Elbear/Start можно использовать встроенный светодиод
|
||||
uint8_t ledPin = LED_BUILTIN;
|
||||
#elif defined(ARDUINO_ELSOMIK) // для плат Elsomik нужно задать вывод
|
||||
uint8_t ledPin = P0_0;
|
||||
#else
|
||||
uint8_t ledPin = 2;
|
||||
#endif
|
||||
// задать пин, к которому подключается средний вывод потенциометра
|
||||
#if defined(ARDUINO_ELSOMIK) || defined(ARDUINO_START_MIK32_V1)
|
||||
// для плат Elsomik и Start задать пин в формате порт_вывод. Пин должен поддерживать АЦП измерения
|
||||
const int sensorPin = P1_5;
|
||||
#else
|
||||
// для плат Elbear задать номер аналогового вывода
|
||||
const int sensorPin = A0;
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Глобальны переменные для уровней яркости:
|
||||
|
||||
@@ -1,7 +1,13 @@
|
||||
#include "notes.h" // Библиотека с частотой нот
|
||||
|
||||
// Константы с именами для используемых пинов.
|
||||
const int buzzerPin = P0_0;
|
||||
// задать пин, к которому подсоединен пьезоэлемент
|
||||
#if defined(ARDUINO_ELSOMIK) || defined(ARDUINO_START_MIK32_V1)
|
||||
// для плат Elsomik и Start задать пин в формате порт_вывод
|
||||
const int buzzerPin = P0_0;
|
||||
#else
|
||||
// для плат Elbear задать номер цифрового вывода
|
||||
const int buzzerPin = 2;
|
||||
#endif
|
||||
|
||||
/*
|
||||
* BPM (bpm, англ. beats per minute[1], удары в минуту) в музыке — показатель, определяющий скорость исполнения
|
||||
|
||||
Reference in new issue
Block a user