09-08-2020, 21:10
Witam,
Próbuje stworzyć licznik impulsów używając arduino uno i matrycy led 32x32.
Zasada działania :
Matryca podzielona na 2 ekrany, na pierwszym wyświetla się ilość impulsów jaka ma byś zliczana ( ustawiana przyciskiem + i - )
na drugim zaś pokazuje się wskazanie z fotokomórki zliczające od 0 do wskazanego wcześniej zakresu.
Aktualnie licznik działa poprawnie aczkolwiek mam 3 problemy :
1) Chciałbym wprowadzić 3 przycisk który zerował by wskazanie licznika ( zliczone impulsy) \
2) Chciałbym wprowadzić zapis do EEPROM wartości ustawionej przyciskami + i -
Nie mam już siły ani pomysłu jak wpleść ww opcje w mój kod,
Prosił bym o pomoc
Próbuje stworzyć licznik impulsów używając arduino uno i matrycy led 32x32.
Zasada działania :
Matryca podzielona na 2 ekrany, na pierwszym wyświetla się ilość impulsów jaka ma byś zliczana ( ustawiana przyciskiem + i - )
na drugim zaś pokazuje się wskazanie z fotokomórki zliczające od 0 do wskazanego wcześniej zakresu.
Aktualnie licznik działa poprawnie aczkolwiek mam 3 problemy :
1) Chciałbym wprowadzić 3 przycisk który zerował by wskazanie licznika ( zliczone impulsy) \
2) Chciałbym wprowadzić zapis do EEPROM wartości ustawionej przyciskami + i -
Nie mam już siły ani pomysłu jak wpleść ww opcje w mój kod,
Prosił bym o pomoc
Kod:
#include <SPI.h>1
#include <DMD2.h>
#include <DMD.h>
#include <SystemFont5x7.h>
#include <fonts/Arial_Black_16.h>
#include <Bounce2.h>
#define BUTTON_PIN 2 // przycisk +
#define BUTTON_PIN3 3
#define BUTTON_PIN4 4
#define BUTTON_PIN5 1
int zerowanie = A1; // inicjalizacja pinu 12 jako reset
int a;
int count=0;
int press;
int press1;
int press2;
Bounce debouncer = Bounce();
Bounce debouncer2 = Bounce();
Bounce debouncer3 = Bounce();
Bounce debouncer4 = Bounce();
Bounce debouncer5 = Bounce();
SoftDMD dmd(1,1); //SoftDMD dmd(1,1);
void setup() {
pinMode(BUTTON_PIN,INPUT_PULLUP); // konfiguracja przycisku i aktywowanie rezystora podciągającego;
debouncer.attach (BUTTON_PIN);
debouncer.interval (10);
pinMode(BUTTON_PIN3,INPUT_PULLUP);
debouncer2.attach (BUTTON_PIN3);
debouncer2.interval (1000);
pinMode(BUTTON_PIN4,INPUT_PULLUP);
debouncer3.attach (BUTTON_PIN4);
debouncer3.interval (10);
pinMode(BUTTON_PIN5,INPUT_PULLUP);
debouncer5.attach (BUTTON_PIN5);
debouncer5.interval (10);
///DMD_TextBox box1(dmd, 19, 1, 36, 16);
//DMD_TextBox box(dmd, 2, 8, 36, 16);
// Set Box (dmd, x, y, Height, Width)
dmd.setBrightness(50); // Set brightness 0 - 255
dmd.selectFont(SystemFont5x7); // Font used
dmd.begin();
// box1.print(0);
//delay (1000);
// box.print(0);
//delay (1000);
}
void loop() {
debouncer.update();
debouncer3.update();
debouncer2.update();
debouncer5.update();
unsigned value = debouncer.read();
value=digitalRead(BUTTON_PIN);
if (value==LOW) {
press=count++;
delay(200);
}
unsigned va = debouncer3.read();
va=digitalRead(BUTTON_PIN4);
if (va==LOW) {
press=count--;
delay(300);
a==press;
dmd.clearScreen();
}
if (press<0){
press=0;
}
unsigned v = debouncer2.read(); //lacza, wyświetlała się wartość ustawiona wcześniej ale z każdyn impulsem pomniejsozna o 1 aż do 0 i ponownie
v=digitalRead(BUTTON_PIN3);
if (v==LOW) {
press1=a;
if (a==press){
a=1;
delay (200);
dmd.clearScreen();
}
if (digitalRead(1)==LOW){
press1=0;
}
else{
++a;
delay(200);
dmd.clearScreen();
}
//unsigned ziro = debouncer5.read ();
//ziro==digitalRead(BUTTON_PIN5);
//if (analogRead(A1)==LOW){
//count = 0;
//dmd.clearScreen();
}
DMD_TextBox box1(dmd, 19, 1, 36, 16);
DMD_TextBox box(dmd, 2, 8, 36, 16);
box1.print(press1);
//delay (1000);
box.print(press);
//delay (1000)
}