Настройка миганием светодиода
- Войдите на сайт для отправки комментариев
Чт, 24/01/2019 - 22:58
Здравствуйте, нужна помощь по проекту на ардуино. Устройство: одноканальный генератор. Использовал библиотеку Timerone. Управление сидит на одной кнопке(один клик-вкл, второй клик-выкл). Для управления использовал библиотеку Алекса Гайвера. Загвоздка в том, что каждые пол сек, сигнал снимаемый с ноги частоты, должен вкл/выкл. Я немогу управлять вкл/отключением сигнала. Только начал работу с ардуиной, так что за код извиняюсь. В коде осуществлено мигание светодиода на millis(). Оно работает постоянно, а мне нужно что бы только по нажатию кпопки
#define PIN 3
#define MODE_AM 2
#include "GyverButton.h"
#include <TimerOne.h>
GButton butt1(PIN);
byte mode = 0;
int led=13;
int ledState = HIGH;
long previousMillis = 0;
long interval=400;
void setup() {
Timer1.initialize(100);
Timer1.pwm(9, 51);
Serial.begin(9600);
pinMode(led, OUTPUT);
Timer1.stop();
}
void loop() {
butt1.tick();
if (butt1.isPress()) {
if (++mode >= MODE_AM) mode = 0;
switch (mode) {
case 0: task_0();
break;
case 1: task_1();
break;
}
}
//---------------------------------------------------------------------------------
unsigned long currentMillis = millis();
if(currentMillis - previousMillis > interval)
{
previousMillis = currentMillis;
if (ledState == LOW)
ledState = HIGH;
else
ledState = LOW;
digitalWrite(led, ledState);
}
//-----------------------------------------------------------------------------------------
}
void task_0() {
Timer1.stop();
Serial.println("OFF");
digitalWrite(led, LOW);
long interval = 3000;
}
void task_1() {
long interval = 400;
Timer1.start();
Serial.println("ON");
}
EXAMPLE 03: TURN ON LED WITH BUTTON AND KEEP IT ON Nothing special but this time the led stays on until the button is pressed again. //Example 03: Turn on LED with button and keep it on const int LED = 13; const int BUTTON = 7; int val = 0; int old_val = 0; int state = 0; void setup () { pinMode(LED,OUTPUT); pinMode(BUTTON, INPUT); } void loop (){ val = digitalRead(BUTTON); if( val == HIGH && old_val == LOW) { state = 1-state; delay (10); } old_val = val; if ( state == 1) digitalWrite(LED,HIGH); else digitalWrite(LED, LOW); }https://www.youtube.com/watch?v=7qAQ7qRaQ88
Это у меня получалось. Мне именно нужно, что бы при включении он еще и мигал
Это вместо строки #31
очень хорошие уроки
https://www.youtube.com/watch?v=8mbyebZwHFc
я смотрел эти уроки, ну в целом понятнее если литературу прочесть, тут просто кому как