Stránka 1 z 1

Pomoc s kodom na countdown

Napsal: 03 led 2020, 00:05
od Stalki
Ahojte som zaciatocnik v arduine, pomalicky sa ucim.
Potreboval by som poradit s kodom.
Mam k dispozici arduino mega aj uno, plus RGB matrix led panel 32x16.

Vedel by mi niekto napisat kod.

Moja predstava je taka, mam opticky snimac snimac reaguje ako vypinac. Pred snimac dam nejaky predmet snimac zareaguje a zacne sa odpocitavanie nastaveneho casu predmet dam prec odpocitavanie stale bezi pokial neodpocita nastaveny cas, po skonceni casu zostane panel cierny dam predmet pred snimac a zacne sa odpocitavanie a takto dookola.

Pripadne ak by to islo druha moja predstava.
Mam opticky snimac pred snimac dam nejaky predmet snimac zareaguje a zacne sa odpocitavanie nastaveneho casu predmet dam prec odpocitavanie bezi vlozim predmet pred snimac cas sa vyresetuje a zacne sa znova odpocitavanie predmet odoberiem cas bezi pokial sa neodpocita cas alebo nepride pred snimac predmet., po skonceni casu zostane panel cierny.

Islo by take nieco vymysliet ?

Ak by mi vedel niekto pomoct som ochotny dat aj odmenu.

Vpripade pomoci prosim koment alebo SS.

Dakujem.

Re: Pomoc s kodom na countdown

Napsal: 07 led 2020, 17:32
od powl
zdar!

asi by bylo nejlepsi kdybys zkusil napsat alespon kus kodu a postnul ho sem az se na necem zaseknes

ja bych to resil asi takto (jen nacrt myslenky, neni to funkcni kod a nemam to jak vyzkouset :mrgreen: )


minule_opticky_snimac==LOW
panel=LOW
minule=0
pocitac=0

loop:

1) read opticky_snimac (LOW/HIGH)

2) if (opticky_snimac == HIGH and minule_opticky_snimac == LOW)
{pocitac=20}


3) if (pocitac > 0)
{panel=HIGH}
else
{panel=LOW}

4) aktual=millis()

5) if (aktual-minule>999 AND pocitac>0)
{pocitac=pocitac-1}

6) minule=aktual

7) minule_opticky_snimac==opticky_snimac

Re: Pomoc s kodom na countdown

Napsal: 09 led 2020, 14:20
od Stalki
Ahoj mne sa podarilo vymysliet nieco taketo.

To odpocitavanie celkom funguje ale ten signal zo snimaca ani moc nie.

Skusim sa pozret aj na ten tvoj prispevok ci nahodou mi nepomoze.

#include <Adafruit_GFX.h> // Core graphics library
#include <RGBmatrixPanel.h> // Hardware-specific library

#define CLK 11 // MUST be on PORTB! (Use pin 11 on Mega)
#define LAT 10
#define OE 9
#define A A0
#define B A1
#define C A2
#define n 1

RGBmatrixPanel matrix(A, B, C, CLK, LAT, OE, false,64);

int tlacitko =13;



void setup() {

matrix.begin();
matrix.setTextSize(2);

}

void loop() {

while((digitalRead(tlacitko)) == HIGH)
matrix.fillScreen(matrix.Color333(0, 0, 0));


matrix.setCursor(7, 0);
matrix.setTextColor(matrix.Color333(0,1,0));
matrix.print(F("1.50"));
delay(1000);

matrix.fillScreen(matrix.Color333(0, 0, 0));

matrix.setCursor(7, 0);
matrix.setTextColor(matrix.Color333(0,1,0));
matrix.print(F("1.49"));
delay(1000);

matrix.fillScreen(matrix.Color333(0, 0, 0));

matrix.setCursor(7, 0);
matrix.setTextColor(matrix.Color333(0,1,0));
matrix.print(F("1.48"));
delay(1000);

matrix.fillScreen(matrix.Color333(0, 0, 0));

matrix.setCursor(7, 0);
matrix.setTextColor(matrix.Color333(0,1,0));
matrix.print(F("1.47"));
delay(1000);

matrix.fillScreen(matrix.Color333(0, 0, 0));

matrix.setCursor(7, 0);
matrix.setTextColor(matrix.Color333(0,1,0));
matrix.print(F("1.46"));
delay(1000);

matrix.fillScreen(matrix.Color333(0, 0, 0));

matrix.setCursor(7, 0);
matrix.setTextColor(matrix.Color333(0,1,0));
matrix.print(F("1.45"));
delay(1000);

matrix.fillScreen(matrix.Color333(0, 0, 0));

matrix.setCursor(7, 0);
matrix.setTextColor(matrix.Color333(0,1,0));
matrix.print(F("1.44"));
delay(1000);

matrix.fillScreen(matrix.Color333(0, 0, 0));

matrix.setCursor(7, 0);
matrix.setTextColor(matrix.Color333(0,1,0));
matrix.print(F("1.43"));
delay(1000);

matrix.fillScreen(matrix.Color333(0, 0, 0));

matrix.setCursor(7, 0);
matrix.setTextColor(matrix.Color333(0,1,0));
matrix.print(F("1.42"));
delay(1000);

matrix.fillScreen(matrix.Color333(0, 0, 0));

matrix.setCursor(7, 0);
matrix.setTextColor(matrix.Color333(0,1,0));
matrix.print(F("1.41"));
delay(1000);

matrix.fillScreen(matrix.Color333(0, 0, 0));

matrix.setCursor(7, 0);
matrix.setTextColor(matrix.Color333(0,1,0));
matrix.print(F("1.40"));
delay(1000);

}

Verim tomu ze sa to da nejako jednoduchsie spravit to odpocitavanie, a ked sa privedie signal na pin/y ze sa odpocitavanie zacne, alebo ako som pisal v prispevku vyssie. Diky.