IR senzory, LED matice a červené LED diody, prosím o pomoc.
-
- Příspěvky: 7
- Registrován: 14 kvě 2020, 11:43
- Reputation: 0
IR senzory, LED matice a červené LED diody, prosím o pomoc.
Dobrý den,
jsem začátečník, který se učí z fór, článků a různých diskuzí. Sestavil jsem si vlastní fotbálek na míru a teď ho chci osadit senzory, dvěmi LED maticemi a čtyřmi diodami v obou brankách. Celý projekt má fungovat tak, že po vstřelení gólu sepne senzor ve žlábku, kterým projíždí míček, na LED miatici se zobrazí číslo 1 a branka třikrát problikne. Povedlo se mi rozběhnout senzory v obou brankách a po vstřelení gólu se třikrát rozsvítí diody, ale i po stažení LEDControl se mi nedaří na displej dostat to co potřebuji. Moc Vás prosím o radu zda by někdo nevěděl jak naprogramovat, popřípadě jak docílit toho aby se mi měnilo číslo na displeji když padne branka.Zde je kód, který jsem vymyslel, abych tomu rozuměl a byl si jistý co co dělá. Navíc jsem tam přidal LEDControl a skore1.
Děkuji moc za odpovědi
//nastavení senzorů ve žlábcích
int senzordomaci1 = 5; // číslo pinu připojeného senzoru
int senzordomaci2 = 4; // číslo pinu připojeného senzoru
int senzorhoste1 = 3; // číslo pinu připojeného senzoru
int senzorhoste2 = 2; // číslo pinu připojeného senzoru
//nastavení diod v brankách
int brankadomaci = 6; // číslo pinu připojených LED diod
int brankahoste = 13; // číslo pinu připojených LED diod
//vytvoření proměnné, když padne gól
int goldomaci1 = 1; //proměnná pro domácí senzor 1
int goldomaci2 = 1; //proměnná pro domácí senzor 2
int golhoste1 = 1; //proměnná pro hostí senzor 1
int golhoste2 = 1; //proměnná pro hostí senzor 2
#include <LedControl.h>
LedControl hosteD = new LedControl(7, 8, 9, 1)
LedControl domaciD = new LedControl(10, 11, 12, 1)
const int skore1[][8] = {
{
B00011000,
B00011000,
B00011000,
B00011000,
B00011000,
B00011000,
B00011000,
B00011000
}
}
void setup() {
pinMode(brankadomaci, OUTPUT); //nastevení LED diod jako výstup
pinMode(brankahoste, OUTPUT); //nastevení LED diod jako výstup
pinMode(senzordomaci1, INPUT); //nastevení senzorů jako vstup
pinMode(senzordomaci2, INPUT); //nastevení senzorů jako vstup
pinMode(senzorhoste1, INPUT); //nastevení senzorů jako vstup
pinMode(senzorhoste2, INPUT); //nastevení senzorů jako vstup
}
void loop() {
goldomaci1 = digitalRead(senzordomaci1);
// jestliže senzor zachytí pohyb rozsvítí se LED diody
if (goldomaci1 == LOW) {
digitalWrite(brankadomaci, HIGH); //zapnutí LED diod
delay(500);
digitalWrite(brankadomaci, LOW); //vypnutí LED diod
delay(500);
digitalWrite(brankadomaci, HIGH); //zapnutí LED diod
delay(500);
digitalWrite(brankadomaci, LOW); //vypnutí LED diod
delay(500);
digitalWrite(brankadomaci, HIGH); //zapnutí LED diod
delay(500);
}
// pokud není stisknuto tlačítko, stav je LOW - log. 0
else {
// vypne LED diodu
digitalWrite(brankadomaci, LOW);
}
goldomaci2 = digitalRead(senzordomaci2);
if (goldomaci2 == LOW) {
digitalWrite(brankadomaci, HIGH);
delay(500);
digitalWrite(brankadomaci, LOW);
delay(500);
digitalWrite(brankadomaci, HIGH);
delay(500);
digitalWrite(brankadomaci, LOW);
delay(500);
digitalWrite(brankadomaci, HIGH);
delay(500¨;
}
else {
digitalWrite(brankadomaci, LOW);
}
golhoste1 = digitalRead(senzorhoste1);
if (golhoste1 == LOW) {
digitalWrite(brankahoste, HIGH);
delay(500);
digitalWrite(brankahoste, LOW);
delay(500);
digitalWrite(brankahoste, HIGH);
delay(500);
digitalWrite(brankahoste, LOW);
delay(500);
digitalWrite(brankahoste, HIGH);
delay(500¨;
}
else {
digitalWrite(brankahoste, LOW);
}
golhoste2 = digitalRead(senzorhoste2);
if (golhoste2 == LOW) {
digitalWrite(brankahoste, HIGH);
delay(500);
digitalWrite(brankahoste, LOW);
delay(500);
digitalWrite(brankahoste, HIGH);
delay(500);
digitalWrite(brankahoste, LOW);
delay(500);
digitalWrite(brankahoste, HIGH);
delay(500¨;
}
else {
digitalWrite(brankahoste, LOW);
}
}
jsem začátečník, který se učí z fór, článků a různých diskuzí. Sestavil jsem si vlastní fotbálek na míru a teď ho chci osadit senzory, dvěmi LED maticemi a čtyřmi diodami v obou brankách. Celý projekt má fungovat tak, že po vstřelení gólu sepne senzor ve žlábku, kterým projíždí míček, na LED miatici se zobrazí číslo 1 a branka třikrát problikne. Povedlo se mi rozběhnout senzory v obou brankách a po vstřelení gólu se třikrát rozsvítí diody, ale i po stažení LEDControl se mi nedaří na displej dostat to co potřebuji. Moc Vás prosím o radu zda by někdo nevěděl jak naprogramovat, popřípadě jak docílit toho aby se mi měnilo číslo na displeji když padne branka.Zde je kód, který jsem vymyslel, abych tomu rozuměl a byl si jistý co co dělá. Navíc jsem tam přidal LEDControl a skore1.
Děkuji moc za odpovědi
//nastavení senzorů ve žlábcích
int senzordomaci1 = 5; // číslo pinu připojeného senzoru
int senzordomaci2 = 4; // číslo pinu připojeného senzoru
int senzorhoste1 = 3; // číslo pinu připojeného senzoru
int senzorhoste2 = 2; // číslo pinu připojeného senzoru
//nastavení diod v brankách
int brankadomaci = 6; // číslo pinu připojených LED diod
int brankahoste = 13; // číslo pinu připojených LED diod
//vytvoření proměnné, když padne gól
int goldomaci1 = 1; //proměnná pro domácí senzor 1
int goldomaci2 = 1; //proměnná pro domácí senzor 2
int golhoste1 = 1; //proměnná pro hostí senzor 1
int golhoste2 = 1; //proměnná pro hostí senzor 2
#include <LedControl.h>
LedControl hosteD = new LedControl(7, 8, 9, 1)
LedControl domaciD = new LedControl(10, 11, 12, 1)
const int skore1[][8] = {
{
B00011000,
B00011000,
B00011000,
B00011000,
B00011000,
B00011000,
B00011000,
B00011000
}
}
void setup() {
pinMode(brankadomaci, OUTPUT); //nastevení LED diod jako výstup
pinMode(brankahoste, OUTPUT); //nastevení LED diod jako výstup
pinMode(senzordomaci1, INPUT); //nastevení senzorů jako vstup
pinMode(senzordomaci2, INPUT); //nastevení senzorů jako vstup
pinMode(senzorhoste1, INPUT); //nastevení senzorů jako vstup
pinMode(senzorhoste2, INPUT); //nastevení senzorů jako vstup
}
void loop() {
goldomaci1 = digitalRead(senzordomaci1);
// jestliže senzor zachytí pohyb rozsvítí se LED diody
if (goldomaci1 == LOW) {
digitalWrite(brankadomaci, HIGH); //zapnutí LED diod
delay(500);
digitalWrite(brankadomaci, LOW); //vypnutí LED diod
delay(500);
digitalWrite(brankadomaci, HIGH); //zapnutí LED diod
delay(500);
digitalWrite(brankadomaci, LOW); //vypnutí LED diod
delay(500);
digitalWrite(brankadomaci, HIGH); //zapnutí LED diod
delay(500);
}
// pokud není stisknuto tlačítko, stav je LOW - log. 0
else {
// vypne LED diodu
digitalWrite(brankadomaci, LOW);
}
goldomaci2 = digitalRead(senzordomaci2);
if (goldomaci2 == LOW) {
digitalWrite(brankadomaci, HIGH);
delay(500);
digitalWrite(brankadomaci, LOW);
delay(500);
digitalWrite(brankadomaci, HIGH);
delay(500);
digitalWrite(brankadomaci, LOW);
delay(500);
digitalWrite(brankadomaci, HIGH);
delay(500¨;
}
else {
digitalWrite(brankadomaci, LOW);
}
golhoste1 = digitalRead(senzorhoste1);
if (golhoste1 == LOW) {
digitalWrite(brankahoste, HIGH);
delay(500);
digitalWrite(brankahoste, LOW);
delay(500);
digitalWrite(brankahoste, HIGH);
delay(500);
digitalWrite(brankahoste, LOW);
delay(500);
digitalWrite(brankahoste, HIGH);
delay(500¨;
}
else {
digitalWrite(brankahoste, LOW);
}
golhoste2 = digitalRead(senzorhoste2);
if (golhoste2 == LOW) {
digitalWrite(brankahoste, HIGH);
delay(500);
digitalWrite(brankahoste, LOW);
delay(500);
digitalWrite(brankahoste, HIGH);
delay(500);
digitalWrite(brankahoste, LOW);
delay(500);
digitalWrite(brankahoste, HIGH);
delay(500¨;
}
else {
digitalWrite(brankahoste, LOW);
}
}
Re: IR senzory, LED matice a červené LED diody, prosím o pomoc.
Příště vkládej kód rovnou do těch závorek označenýh </>
Pak jsem z toho popisu nějak vůbec nepochopil, co by to mělo dělat a co to nedělá. Zkus to popsat trochu srozumitelněji, snad se pak najde nějaké řešení.
Kód: Vybrat vše
//nastavení senzorů ve žlábcích
int senzordomaci1 = 5; // číslo pinu připojeného senzoru
int senzordomaci2 = 4; // číslo pinu připojeného senzoru
int senzorhoste1 = 3; // číslo pinu připojeného senzoru
int senzorhoste2 = 2; // číslo pinu připojeného senzoru
//nastavení diod v brankách
int brankadomaci = 6; // číslo pinu připojených LED diod
int brankahoste = 13; // číslo pinu připojených LED diod
//vytvoření proměnné, když padne gól
int goldomaci1 = 1; //proměnná pro domácí senzor 1
int goldomaci2 = 1; //proměnná pro domácí senzor 2
int golhoste1 = 1; //proměnná pro hostí senzor 1
int golhoste2 = 1; //proměnná pro hostí senzor 2
#include <LedControl.h>
LedControl hosteD = new LedControl(7, 8, 9, 1)
LedControl domaciD = new LedControl(10, 11, 12, 1)
const int skore1[][8] = {
{
B00011000,
B00011000,
B00011000,
B00011000,
B00011000,
B00011000,
B00011000,
B00011000
}
}
void setup() {
pinMode(brankadomaci, OUTPUT); //nastevení LED diod jako výstup
pinMode(brankahoste, OUTPUT); //nastevení LED diod jako výstup
pinMode(senzordomaci1, INPUT); //nastevení senzorů jako vstup
pinMode(senzordomaci2, INPUT); //nastevení senzorů jako vstup
pinMode(senzorhoste1, INPUT); //nastevení senzorů jako vstup
pinMode(senzorhoste2, INPUT); //nastevení senzorů jako vstup
}
void loop() {
goldomaci1 = digitalRead(senzordomaci1);
// jestliže senzor zachytí pohyb rozsvítí se LED diody
if (goldomaci1 == LOW) {
digitalWrite(brankadomaci, HIGH); //zapnutí LED diod
delay(500);
digitalWrite(brankadomaci, LOW); //vypnutí LED diod
delay(500);
digitalWrite(brankadomaci, HIGH); //zapnutí LED diod
delay(500);
digitalWrite(brankadomaci, LOW); //vypnutí LED diod
delay(500);
digitalWrite(brankadomaci, HIGH); //zapnutí LED diod
delay(500);
}
// pokud není stisknuto tlačítko, stav je LOW - log. 0
else {
// vypne LED diodu
digitalWrite(brankadomaci, LOW);
}
goldomaci2 = digitalRead(senzordomaci2);
if (goldomaci2 == LOW) {
digitalWrite(brankadomaci, HIGH);
delay(500);
digitalWrite(brankadomaci, LOW);
delay(500);
digitalWrite(brankadomaci, HIGH);
delay(500);
digitalWrite(brankadomaci, LOW);
delay(500);
digitalWrite(brankadomaci, HIGH);
delay(500¨;
}
else {
digitalWrite(brankadomaci, LOW);
}
golhoste1 = digitalRead(senzorhoste1);
if (golhoste1 == LOW) {
digitalWrite(brankahoste, HIGH);
delay(500);
digitalWrite(brankahoste, LOW);
delay(500);
digitalWrite(brankahoste, HIGH);
delay(500);
digitalWrite(brankahoste, LOW);
delay(500);
digitalWrite(brankahoste, HIGH);
delay(500¨;
}
else {
digitalWrite(brankahoste, LOW);
}
golhoste2 = digitalRead(senzorhoste2);
if (golhoste2 == LOW) {
digitalWrite(brankahoste, HIGH);
delay(500);
digitalWrite(brankahoste, LOW);
delay(500);
digitalWrite(brankahoste, HIGH);
delay(500);
digitalWrite(brankahoste, LOW);
delay(500);
digitalWrite(brankahoste, HIGH);
delay(500¨;
}
else {
digitalWrite(brankahoste, LOW);
}
}
- pavel1tu
- Příspěvky: 2054
- Registrován: 26 říj 2017, 08:28
- Reputation: 0
- Bydliště: Trutnov
- Kontaktovat uživatele:
Re: IR senzory, LED matice a červené LED diody, prosím o pomoc.
Já mu rozumím o co jde.
- senzor někde za brankou
- počítání golu asi na LED maticový displej
- blikání LED za brankou
Jakou matici máš - tedy kolik jich je - 2 ?
Bylo by dobré přímo napsat odkaz na knihovnu - zrovna Ledkontrol má tolik kopií a mnoho s dost blbými chybami.
PS: kod na ty LED segmentovky bych použil z nějakého funkčního projektu, nebo příkladu v knihovně pro Ledkontrol (budík, minutka, hodiny), hlavně zobrazování, zdroj dat pro čísla atd. většinou to mají jako funkci, tak to půjde jednoduše použít.
Pro inspiraci :
https://xantorohara.github.io/led-matrix-editor/
https://github.com/mylms/Arduino-Matrix-Clock
- senzor někde za brankou
- počítání golu asi na LED maticový displej
- blikání LED za brankou
Jakou matici máš - tedy kolik jich je - 2 ?
Bylo by dobré přímo napsat odkaz na knihovnu - zrovna Ledkontrol má tolik kopií a mnoho s dost blbými chybami.
PS: kod na ty LED segmentovky bych použil z nějakého funkčního projektu, nebo příkladu v knihovně pro Ledkontrol (budík, minutka, hodiny), hlavně zobrazování, zdroj dat pro čísla atd. většinou to mají jako funkci, tak to půjde jednoduše použít.
Pro inspiraci :
https://xantorohara.github.io/led-matrix-editor/
https://github.com/mylms/Arduino-Matrix-Clock
UNO, NANO, Mikro, PRO mini, DUE, ESP32S2, RPi PICO
Pavel1TU
"Správně napsaný kod lze číst jako knihu"
Pavel1TU
"Správně napsaný kod lze číst jako knihu"
-
- Příspěvky: 7
- Registrován: 14 kvě 2020, 11:43
- Reputation: 0
Re: IR senzory, LED matice a červené LED diody, prosím o pomoc.
Děkuji moc za odpovědi, přesně jak říká pan Pavel. LedControl jsem stahoval odtud z článku https://navody.arduino-shop.cz/navody-k ... atice.html a jesna se o dvě matice nezávislé na sobě https://arduino-shop.cz/arduino/850-ard ... atice.html
Děkuji moc
Děkuji moc
- pavel1tu
- Příspěvky: 2054
- Registrován: 26 říj 2017, 08:28
- Reputation: 0
- Bydliště: Trutnov
- Kontaktovat uživatele:
Re: IR senzory, LED matice a červené LED diody, prosím o pomoc.
No, koukal jsem na tvůj program,
LEDmatrix tam sice máš nějak definovaný, ale nenecháváš vykrestil tu "1"
Knihovnu raději smaž a naimportuj si tuto - http://wayoda.github.io/LedControl/
Nebo pokud to jde, stačí update ...
Začni s jedným LEDmatrix, udělej si program který ti bude po aktivaci čidla "golu" zvedat čísla 0-1-2-3
Popřípadě nulování tlačítkem.
Tady máš příklad z odkazu co jsem psal pro vytváření "fontu", nevím jestli bude fungovat, ale měl by měnit číslice 0-1-2 po 500ms.
V programu je jasně vidět část kde jsou v čísla 0-1-2 a jak se po 500ms volají "displayImage(IMAGES);" a zobrazují dokola.
Takže když i=0 zobrazí se 0 atd ....
Tento program jen zobrazí automaticky všechny znaky vložené do pole "IMAGES[]"
Až zvládneš 1 LEGmatrix, rozchoď podobně druhý a takto postupuj ....
LEDmatrix tam sice máš nějak definovaný, ale nenecháváš vykrestil tu "1"
Knihovnu raději smaž a naimportuj si tuto - http://wayoda.github.io/LedControl/
Nebo pokud to jde, stačí update ...
Začni s jedným LEDmatrix, udělej si program který ti bude po aktivaci čidla "golu" zvedat čísla 0-1-2-3
Popřípadě nulování tlačítkem.
Tady máš příklad z odkazu co jsem psal pro vytváření "fontu", nevím jestli bude fungovat, ale měl by měnit číslice 0-1-2 po 500ms.
V programu je jasně vidět část kde jsou v čísla 0-1-2 a jak se po 500ms volají "displayImage(IMAGES);" a zobrazují dokola.
Takže když i=0 zobrazí se 0 atd ....
Tento program jen zobrazí automaticky všechny znaky vložené do pole "IMAGES[]"
Kód: Vybrat vše
#include <LedControl.h>
const int DIN_PIN = 7;
const int CS_PIN = 6;
const int CLK_PIN = 5;
const uint64_t IMAGES[] = {
0x183c666666663c18, //0
0x30303030303c3830, //1
0x3e3e0c1830363e1c //2
};
const int IMAGES_LEN = sizeof(IMAGES)/8;
LedControl display = LedControl(DIN_PIN, CLK_PIN, CS_PIN);
void setup() {
display.clearDisplay(0);
display.shutdown(0, false);
display.setIntensity(0, 10);
}
void displayImage(uint64_t image) {
for (int i = 0; i < 8; i++) {
byte row = (image >> i * 8) & 0xFF;
for (int j = 0; j < 8; j++) {
display.setLed(0, i, j, bitRead(row, j));
}
}
}
int i = 0;
void loop() {
displayImage(IMAGES[i]);
if (++i >= IMAGES_LEN ) {
i = 0;
}
delay(500);
}
UNO, NANO, Mikro, PRO mini, DUE, ESP32S2, RPi PICO
Pavel1TU
"Správně napsaný kod lze číst jako knihu"
Pavel1TU
"Správně napsaný kod lze číst jako knihu"
- pavel1tu
- Příspěvky: 2054
- Registrován: 26 říj 2017, 08:28
- Reputation: 0
- Bydliště: Trutnov
- Kontaktovat uživatele:
Re: IR senzory, LED matice a červené LED diody, prosím o pomoc.
Na blikaní LED se zatím vykašli,
asi moc neprogramuješ, děcka na kroužku používají knihovnu jled.h
https://github.com/jandelgado/jled
asi moc neprogramuješ, děcka na kroužku používají knihovnu jled.h
https://github.com/jandelgado/jled
Kód: Vybrat vše
#include <jled.h>
// blink internal LED every second; 1 second on, 0.5 second off.
auto ledDomaci = JLed(6).Blink(500, 100).Repeat(5); // 500ms cykus, 100ms sviti, zopakuje 5x
void setup() { }
void loop() {
ledDomaci.Update(); //tento radek spusti to blikani
}
UNO, NANO, Mikro, PRO mini, DUE, ESP32S2, RPi PICO
Pavel1TU
"Správně napsaný kod lze číst jako knihu"
Pavel1TU
"Správně napsaný kod lze číst jako knihu"
-
- Příspěvky: 7
- Registrován: 14 kvě 2020, 11:43
- Reputation: 0
Re: IR senzory, LED matice a červené LED diody, prosím o pomoc.
Děkuji moc za odpovědi, dnes to zkusím nějak rozchodit a dám vědět co z toho vypadlo.
- pavel1tu
- Příspěvky: 2054
- Registrován: 26 říj 2017, 08:28
- Reputation: 0
- Bydliště: Trutnov
- Kontaktovat uživatele:
Re: IR senzory, LED matice a červené LED diody, prosím o pomoc.
Když ti to nepůjde, hoď sem kod.jandafilip píše: ↑16 kvě 2020, 09:18Děkuji moc za odpovědi, dnes to zkusím nějak rozchodit a dám vědět co z toho vypadlo.
Mrkneme na to - na příští víkend už budu mít doma pár těch kostiček 8x8LED, tak mohu testovat.
UNO, NANO, Mikro, PRO mini, DUE, ESP32S2, RPi PICO
Pavel1TU
"Správně napsaný kod lze číst jako knihu"
Pavel1TU
"Správně napsaný kod lze číst jako knihu"
Kdo je online
Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 10 hostů