IR senzory, LED matice a červené LED diody, prosím o pomoc.
Napsal: 14 kvě 2020, 16:08
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);
}
}