• Witaj na Forum Arduino Polska! Zapraszamy do rejestracji!
  • Znajdziesz tutaj wiele informacji na temat hardware / software.
Witaj! Logowanie Rejestracja


Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Liczniki impulsów arduino UNO + matryca led 32x32
#1
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  

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)

}
 
Odpowiedź
  


Skocz do:


Przeglądający: 1 gości