knihovna IO_Port_8bit.h ovládání LED
Automatizace, řízení, měření, logování a programování s využitím platformy Arduino.
-
- Příspěvky: 6
- Registrován: ned úno 19, 2023 6:57 pm
- Reputace: 0
knihovna IO_Port_8bit.h ovládání LED
Dobrý den,
můj problém spočívá ve svitu LED.
Stáhnul jsem si knihovnu IO_Port_8bit.h a zkusil některé ukazkové programy, ty sice fungují, ale LED téměř nesvítí, pokud však použiju příkaz digitalWrite(2,HIGH); tak se mi příslušná LED rozsvítí plným jasem.
A tak chci poprosit o pomoc s tím kde je chyba?
Předem moc děkuji.
můj problém spočívá ve svitu LED.
Stáhnul jsem si knihovnu IO_Port_8bit.h a zkusil některé ukazkové programy, ty sice fungují, ale LED téměř nesvítí, pokud však použiju příkaz digitalWrite(2,HIGH); tak se mi příslušná LED rozsvítí plným jasem.
A tak chci poprosit o pomoc s tím kde je chyba?
Předem moc děkuji.
-
- Příspěvky: 395
- Registrován: pát říj 15, 2021 10:41 am
- Reputace: 34
- Lokalita: Stredocesky kraj
- Systémové napětí: 48V
- Výkon panelů [Wp]: 11250
- Kapacita baterie [kWh]: 9.6
- Chci prodávat energii: NE
- Chci/Mám dotaci: NE
Re: knihovna IO_Port_8bit.h ovládání LED
A si si isty, ze si na spravnom fore? Okrem toho z tej otazky nie je ani jasne, co vlastne chces.
30*375 Wp JJZ, 2xXTM4000, 2xVT-80, 2xUS5000
- rottenkiwi
- Příspěvky: 5451
- Registrován: pát úno 13, 2015 2:24 pm
- Reputace: 286
- Lokalita: SO, SK
- Bydliště: SO, SK
Re: knihovna IO_Port_8bit.h ovládání LED
Tu je priklad voltage indikator:
To jak svietia LED ovplyvnuju odpory.
Ak chcem, aby LED plynule zhasinali tak musim pouzit na dany pin PWM.
Kód: Vybrat vše
#include<IO_Port_8bit.h>
IO_Port_8bitmyport(2, 3, 4, 5, 6, 7, 8, 9, ’O’); //create output port object
void setup()
{
myport.send_8bit_data(255); //blink all LEDs of bar graph once
delay(500);
myport.send_8bit_data(0);
}
void loop()
{
int level;
level = analogRead(A0); //read analog input voltage
level = map(level, 0, 1023, 0, 80);// limit thevoltage from 0 to 80
//increase or decrease bar graph level asper input
if((level<80) && (level>70))myport.send_8bit_data(255);
elseif((level<=70) && (level>60)) myport.send_8bit_data(127);
elseif((level<=60) && (level>50)) myport.send_8bit_data(63);
elseif((level<=50) && (level>40)) myport.send_8bit_data(31);
elseif((level<=40) && (level>30)) myport.send_8bit_data(15);
elseif((level<=30) && (level>20)) myport.send_8bit_data(7);
elseif((level<=20) && (level>10))myport.send_8bit_data(3);
elseif((level<=10) && (level>0)) myport.send_8bit_data(1);
elseif(level==0) myport.send_8bit_data(0);
}
Ak chcem, aby LED plynule zhasinali tak musim pouzit na dany pin PWM.
DC-AC inverter REC Lion DC-AC ESP32 DIY inv. 15 GB za sekundu DIY MPPT Holder
Zjedz vsetko, co si kupil, v obchode a netreba ti tasku, auto ci chladnicku.
Zjedz vsetko, co si kupil, v obchode a netreba ti tasku, auto ci chladnicku.
-
- Příspěvky: 6
- Registrován: ned úno 19, 2023 6:57 pm
- Reputace: 0
Re: knihovna IO_Port_8bit.h ovládání LED
Omlouvám se za nepřesný dotaz.
Situace je následující. Arduino má na svém pinu č.2 LED, za ní je rezistor 390Ohm a uzemnění.
Pokud dám příkaz digitalWrite(2,HIGH); rozsvítí se LED plným jasem.
Pokud dám příkaz myport.send_8bit_data(1); LED sotva svítí.
A ve složitějším popisu by bylo 8xpříkaz digitalWrite(x,HIGH) kde x=číslo pinu a všechny LED svítí plným jasem.
A příkaz myport.send_8bit_data(255); kde (255) určuje všech 8 LED najednou, sotva svítí.
Ještě upřesnují že řeším u LED pouze dva stavy-svítí plným jasem a nesvítí. Plynulé ovládání jasu a PWM nepotřebuji.
Všechny LED jsou zapojené na PIN-LED-REZISTOR-GND a velikost rezistoru je 390Ohm a nemění se a nic nepřepájím.
Situace je následující. Arduino má na svém pinu č.2 LED, za ní je rezistor 390Ohm a uzemnění.
Pokud dám příkaz digitalWrite(2,HIGH); rozsvítí se LED plným jasem.
Pokud dám příkaz myport.send_8bit_data(1); LED sotva svítí.
A ve složitějším popisu by bylo 8xpříkaz digitalWrite(x,HIGH) kde x=číslo pinu a všechny LED svítí plným jasem.
A příkaz myport.send_8bit_data(255); kde (255) určuje všech 8 LED najednou, sotva svítí.
Ještě upřesnují že řeším u LED pouze dva stavy-svítí plným jasem a nesvítí. Plynulé ovládání jasu a PWM nepotřebuji.
Všechny LED jsou zapojené na PIN-LED-REZISTOR-GND a velikost rezistoru je 390Ohm a nemění se a nic nepřepájím.
- rottenkiwi
- Příspěvky: 5451
- Registrován: pát úno 13, 2015 2:24 pm
- Reputace: 286
- Lokalita: SO, SK
- Bydliště: SO, SK
Re: knihovna IO_Port_8bit.h ovládání LED
Tak zistit kde je problem. AKy je kod ?
AKo su nastavene piny ?
Odkial bola kniznica stiahnuta.
Rovnako to nefunguje aj na inom Arduine ?
Co ukazuje multimeter alebo osciloskop ?
AKo su nastavene piny ?
Odkial bola kniznica stiahnuta.
Rovnako to nefunguje aj na inom Arduine ?
Co ukazuje multimeter alebo osciloskop ?
DC-AC inverter REC Lion DC-AC ESP32 DIY inv. 15 GB za sekundu DIY MPPT Holder
Zjedz vsetko, co si kupil, v obchode a netreba ti tasku, auto ci chladnicku.
Zjedz vsetko, co si kupil, v obchode a netreba ti tasku, auto ci chladnicku.
-
- Příspěvky: 6
- Registrován: ned úno 19, 2023 6:57 pm
- Reputace: 0
Re: knihovna IO_Port_8bit.h ovládání LED
Zdrojový kod je originální, stáhnutý s knihovnou v jednom zip balíku.
#include<IO_Port_8bit.h>
IO_Port_8bit myport(2,3,4,5,6,7,8,9,'O');
void setup()
{
}
void loop()
{
int i;
for(i=0;i<255;i++)
{
myport.send_8bit_data(i);
delay(1000);
}
}
Multimetr ukazuje napětí 1,68V, Osciloskop nevlastním a jiná Arduina také ne, mám jen toto jedno, 10ks je objednáno a přijdou asi za měsíc.
Knihovna pochází z této adresy:
https://www.hackster.io/ambhatt/8-bit-i ... 5_1-NTphRI
#include<IO_Port_8bit.h>
IO_Port_8bit myport(2,3,4,5,6,7,8,9,'O');
void setup()
{
}
void loop()
{
int i;
for(i=0;i<255;i++)
{
myport.send_8bit_data(i);
delay(1000);
}
}
Multimetr ukazuje napětí 1,68V, Osciloskop nevlastním a jiná Arduina také ne, mám jen toto jedno, 10ks je objednáno a přijdou asi za měsíc.
Knihovna pochází z této adresy:
https://www.hackster.io/ambhatt/8-bit-i ... 5_1-NTphRI
Naposledy upravil(a) JosefChroustal dne ned úno 19, 2023 10:20 pm, celkem upraveno 1 x.
-
- Příspěvky: 6
- Registrován: ned úno 19, 2023 6:57 pm
- Reputace: 0
Re: knihovna IO_Port_8bit.h ovládání LED
Heuréka, problém vyřešen.
do smyčky void setup () stačilo přidat příkaz pinMode
void setup()
{
pinMode(9, OUTPUT);
}
a najednou mi LEDky svítí plným jasem, což jsem potřeboval.
Čemu ale nerozumím, proč to chybí v originálním kodu a proč nastavuju jen pin 9, ačkoliv to je nejvyšší bit(127)?
do smyčky void setup () stačilo přidat příkaz pinMode
void setup()
{
pinMode(9, OUTPUT);
}
a najednou mi LEDky svítí plným jasem, což jsem potřeboval.
Čemu ale nerozumím, proč to chybí v originálním kodu a proč nastavuju jen pin 9, ačkoliv to je nejvyšší bit(127)?
-
- Příspěvky: 7757
- Registrován: sob črc 19, 2014 8:56 pm
- Reputace: 943
- Lokalita: severně od Brna
- Systémové napětí: 48V
- Výkon panelů [Wp]: 8kWp
- Kapacita baterie [kWh]: 12kWh
- Chci prodávat energii: NE
- Chci/Mám dotaci: NE
Re: knihovna IO_Port_8bit.h ovládání LED
V origo kódu to nechybí, je to v knihovně, a je to definovaný tím ¨I¨ nebo ¨O¨ na konci definice těch pinů. proč to jede korektně netuším, ale tvoje řešení je prasárna. Knihovna není velká věda, asi bych ji dal pryč a do kódu si zkopíroval jenom tu část a na začátku definoval pin_1 až pin_8 a nastavil je jako výstupy, pokud od toho víc nechceš. Knihovna je hodna indickýho programátora, a asi i ta funkce by šla napsat jednodušej...
Kód: Vybrat vše
void IO_Port_8bit::send_8bit_data(int byt)
{
int d=0;
int binary[8] = {0,0,0,0,0,0,0,0};
Serial.begin(9600);
if (byt>255) Serial.println("Error! You are trying to send data having value greater than 8-bit (>255)");
else
{
while(byt>0)
{
binary[d] = byt%2;
byt = byt/2;
d++;
}
if(binary[0]==1) digitalWrite(pin_1,HIGH);
else digitalWrite(pin_1,LOW);
if(binary[1]==1) digitalWrite(pin_2,HIGH);
else digitalWrite(pin_2,LOW);
if(binary[2]==1) digitalWrite(pin_3,HIGH);
else digitalWrite(pin_3,LOW);
if(binary[3]==1) digitalWrite(pin_4,HIGH);
else digitalWrite(pin_4,LOW);
if(binary[4]==1) digitalWrite(pin_5,HIGH);
else digitalWrite(pin_5,LOW);
if(binary[5]==1) digitalWrite(pin_6,HIGH);
else digitalWrite(pin_6,LOW);
if(binary[6]==1) digitalWrite(pin_7,HIGH);
else digitalWrite(pin_7,LOW);
if(binary[7]==1) digitalWrite(pin_8,HIGH);
else digitalWrite(pin_8,LOW);
}
ostrov skoro 8kWp neustále ve stádiu zrodu: smartshunt(ex WBJR), MPPT150/45, MPPT 250/100(ex midnitesolar 150 clasic lite), 16S a různě P cca 340Ah Winston, MP II 5000,( ex Powerjack 8kW, ex samodomo cca 4kW). 48V DC rozvody a spotřebiče.
-
- Příspěvky: 7757
- Registrován: sob črc 19, 2014 8:56 pm
- Reputace: 943
- Lokalita: severně od Brna
- Systémové napětí: 48V
- Výkon panelů [Wp]: 8kWp
- Kapacita baterie [kWh]: 12kWh
- Chci prodávat energii: NE
- Chci/Mám dotaci: NE
Re: knihovna IO_Port_8bit.h ovládání LED
Jo a posloucháš na sériovým portu, jestli ti to nepíše chyby typu "direction not set?"
ostrov skoro 8kWp neustále ve stádiu zrodu: smartshunt(ex WBJR), MPPT150/45, MPPT 250/100(ex midnitesolar 150 clasic lite), 16S a různě P cca 340Ah Winston, MP II 5000,( ex Powerjack 8kW, ex samodomo cca 4kW). 48V DC rozvody a spotřebiče.
-
- Příspěvky: 395
- Registrován: pát říj 15, 2021 10:41 am
- Reputace: 34
- Lokalita: Stredocesky kraj
- Systémové napětí: 48V
- Výkon panelů [Wp]: 11250
- Kapacita baterie [kWh]: 9.6
- Chci prodávat energii: NE
- Chci/Mám dotaci: NE
Re: knihovna IO_Port_8bit.h ovládání LED
Takze cielom je rozsvietit, alebo zhasnut ledky? To ma byt led ukazatel nejakej veliciny? Na co je tam ta 8bit kniznica? Rozsvietenie a zhasnutie LED je otazka 1 riadku (a inicializacia pinMode druheho).
30*375 Wp JJZ, 2xXTM4000, 2xVT-80, 2xUS5000
-
- Příspěvky: 7757
- Registrován: sob črc 19, 2014 8:56 pm
- Reputace: 943
- Lokalita: severně od Brna
- Systémové napětí: 48V
- Výkon panelů [Wp]: 8kWp
- Kapacita baterie [kWh]: 12kWh
- Chci prodávat energii: NE
- Chci/Mám dotaci: NE
Re: knihovna IO_Port_8bit.h ovládání LED
jestli jsem to pochopil, tak je to "binární displej" tak jsem d době ttl měl udělaný hodiny, na kterejch nikdo nepoznal, kolik je hodin prostě každej bit z čísla má přiřazenou jednu LED. tj když na dy piny pověsíš 2ks D147 a dsedmisegmenty, tak ti to ukáže hex... Taky nevím, k čemu je to dobrý. Jestli to má být indikátor napětí baterie, tak to umím jednodušej a přímočařej, a to jsem spojovač arduino příkladů, ne programátor.
ostrov skoro 8kWp neustále ve stádiu zrodu: smartshunt(ex WBJR), MPPT150/45, MPPT 250/100(ex midnitesolar 150 clasic lite), 16S a různě P cca 340Ah Winston, MP II 5000,( ex Powerjack 8kW, ex samodomo cca 4kW). 48V DC rozvody a spotřebiče.
-
- Příspěvky: 6
- Registrován: ned úno 19, 2023 6:57 pm
- Reputace: 0
Re: knihovna IO_Port_8bit.h ovládání LED
Ja jsem napsal pouze tu cast problemu, ktery resim. Protoze rozepisovat cele moje uzce zamerene zapojeni, urcene pro rizeni navestidel v jedne zeleznicni expozici, jenze to by presahlo ramec prispevku a ztratil by se dotaz. V kostce doslo k tomu ze jsem presel z procesoru PICAXE na Arduino. Ovsem diky knihovne, nemusim menit data odesilana z pocitace do Arduina, tim nemusim menit program v pocitaci.
Kodl69:
Sahnul jsem po knihovne i z casovych duvodu. Odesilam data z PC a zpracovavam je v ARD a protoze nemam tolik casu, kolik bych si predstavoval, byla ta knihovna rychle reseni, behem par okamziku.
Dekuji za sepsany kod, usetril jsi mi dobre 3mesice prace (nemam tolik casu, venovat se vecem z expozice), asi bych k tomuto reseni dosel take, ale za mnohem delsi cas, takhle jsi to udelal za me, ja ti dekuji a za prasarnu tak budu povazovat, ze mam kod naprosto zadarmo. Diky.
Dusanmsk:ne, urceno ke spinani rele.
Kodl69:
Sahnul jsem po knihovne i z casovych duvodu. Odesilam data z PC a zpracovavam je v ARD a protoze nemam tolik casu, kolik bych si predstavoval, byla ta knihovna rychle reseni, behem par okamziku.
Dekuji za sepsany kod, usetril jsi mi dobre 3mesice prace (nemam tolik casu, venovat se vecem z expozice), asi bych k tomuto reseni dosel take, ale za mnohem delsi cas, takhle jsi to udelal za me, ja ti dekuji a za prasarnu tak budu povazovat, ze mam kod naprosto zadarmo. Diky.
Dusanmsk:ne, urceno ke spinani rele.
-
- Moderátor
- Příspěvky: 5405
- Registrován: pon srp 16, 2021 9:31 pm
- Reputace: 647
- Lokalita: blízko Brna
- Systémové napětí: 24V
- Výkon panelů [Wp]: 13+ kWp
- Kapacita baterie [kWh]: 30+7
- Chci prodávat energii: NE
- Chci/Mám dotaci: NE
- Bydliště: blízko Brna
Re: knihovna IO_Port_8bit.h ovládání LED
Čéče, to je dobrá haluz, ptát se na fotovoltaickém fóru na kód pro ovládání vláčků Ale já mám vláčky rád (H0, N) ...
Ostatně oboje je to zábava
Ostatně oboje je to zábava
13,38 kWp: 9850 Wp Jih, 2040 Wp Východ, 1490 Wp Západ
Regulátory Epever a Victron
Phoenix 5 kVA + MP 24/5000 (můj byt + wifi/kamery/atd. + máti byt)
MP2 24/5000 vytěžování do akumulačních kamen
Epever 3kW vytěžování do bojlerů + žebříky
1 kW "nabíječka" 24 V
31 080 Wh staré olovo 7 488 Wh Li-Ion
záloha čerpadla ve sklepě MP12/3000/120-16 + 100Ah 12V monbat
Modře píši jako moderátor, černě jako člen.
Regulátory Epever a Victron
Phoenix 5 kVA + MP 24/5000 (můj byt + wifi/kamery/atd. + máti byt)
MP2 24/5000 vytěžování do akumulačních kamen
Epever 3kW vytěžování do bojlerů + žebříky
1 kW "nabíječka" 24 V
31 080 Wh staré olovo 7 488 Wh Li-Ion
záloha čerpadla ve sklepě MP12/3000/120-16 + 100Ah 12V monbat
Modře píši jako moderátor, černě jako člen.
-
- Příspěvky: 55
- Registrován: pon led 06, 2020 5:58 pm
- Reputace: 9
Re: knihovna IO_Port_8bit.h ovládání LED
Když jsem ten kód viděl tak mi začlo krvácet z očíkodl69 píše:... Knihovna je hodna indickýho programátora, a asi i ta funkce by šla napsat jednodušej...
- rottenkiwi
- Příspěvky: 5451
- Registrován: pát úno 13, 2015 2:24 pm
- Reputace: 286
- Lokalita: SO, SK
- Bydliště: SO, SK
Re: knihovna IO_Port_8bit.h ovládání LED
Ano shiftnut register sme sa ucili este v 1989 v Turbo Assembleri.
Prelozit, pozriet ako to robi compiler pre dane CPU a urobit to efektivnejsie.
Kód: Vybrat vše
void bits(int h){
if (!h) return;
bits(h>>1);
printf(“%d”,h&1);
return;
}
DC-AC inverter REC Lion DC-AC ESP32 DIY inv. 15 GB za sekundu DIY MPPT Holder
Zjedz vsetko, co si kupil, v obchode a netreba ti tasku, auto ci chladnicku.
Zjedz vsetko, co si kupil, v obchode a netreba ti tasku, auto ci chladnicku.
-
- Příspěvky: 6
- Registrován: ned úno 19, 2023 6:57 pm
- Reputace: 0
Re: knihovna IO_Port_8bit.h ovládání LED
Charliexz:
Koho kod? Muj nebo od Kodl69?
Koho kod? Muj nebo od Kodl69?
- TomHC
- Příspěvky: 2053
- Registrován: pát lis 11, 2022 8:14 am
- Reputace: 283
- Lokalita: Hlohovec, SR
- Systémové napětí: 48V
- Výkon panelů [Wp]: 5520
- Kapacita baterie [kWh]: 14
- Chci prodávat energii: NE
- Chci/Mám dotaci: NE
- Bydliště: Hlohovec, SR
Re: knihovna IO_Port_8bit.h ovládání LED
No jasné, vláčiky treba riadiť v assembleri. Ďalší globálny problém ľudstva sme práve vyriešili...rottenkiwi píše:Ano shiftnut register sme sa ucili este v 1989 v Turbo Assembleri.
Prelozit, pozriet ako to robi compiler pre dane CPU a urobit to efektivnejsie.Kód: Vybrat vše
void bits(int h){ if (!h) return; bits(h>>1); printf(“%d”,h&1); return; }
2x MUST PH1800 5.5kW, 8.85kWp V+J+Z, 16x 280 Ah LiFePO4 (14.3 kWh), BMS JBD 200A, SW: Home Assistant na Synology DS923+ ku tomu ESPHome, Tasmota, MariaDB, InfluxDB, Telegraf, Grafana, Zigbee2MQTT..., HW: ESPlan (ESP32 + LAN 8720 + RS485 + UART). Nejaké moje projekty: MUST-ESPhome, ELTEK Flatpack2 ESPhome, ESP32-EMON, PZEM-017@WiFi, diyBMS-CurrentShunt-ESPhome 01/2023 -> 01/2025 = 8.8 MWh AC
-
- Podobná témata
- Odpovědi
- Zobrazení
- Poslední příspěvek
-
- 1 Odpovědi
- 451 Zobrazení
-
Poslední příspěvek od PetrDubi
-
- 6 Odpovědi
- 1088 Zobrazení
-
Poslední příspěvek od 10055
-
- 7 Odpovědi
- 744 Zobrazení
-
Poslední příspěvek od mobilik
-
- 5 Odpovědi
- 729 Zobrazení
-
Poslední příspěvek od silverfox
-
-
Protokol Modbus Rtu pro SUN1000G a port RS232
od ca266054 » » v Hybridní elektrárny
Protokol Modbus Rtu pro SUN1000G a port RS232
- 19 Odpovědi
- 1540 Zobrazení
-
Poslední příspěvek od ca266054
-
Kdo je online
Uživatelé prohlížející si toto fórum: Claudebot [Bot] a 0 hostů