Bargraf
Úvodní stránka › Fórum › Vaše projekty › Arduino › Bargraf
- Toto téma obsahuje celkem 31 odpovědí. Do diskuze (4 diskutující) se naposledy zapojil uživatel posjirka a poslední změna proběhla před 7 roky a 11 měsíci.
-
AutorPříspěvky
-
18.12.2016 v 22:53 #9640JerryÚčastník
Takhle mi to funguje
int prodleva = 40;
int prodleva1 = 80;void setup() {
for (int ledPin = 2; ledPin < 12; ledPin++) {
pinMode(ledPin, OUTPUT);}}void loop() {
// rozsvítí postupně led 1-10
for (int ledPin = 2; ledPin < 12; ledPin++) {
digitalWrite(ledPin, HIGH);
delay(prodleva);
}
// zhasne postupně led 1-10
for (int ledPin = 2; ledPin < 12; ledPin++) {
digitalWrite(ledPin, LOW);
delay(prodleva);
}
// rozsvítí postupně led 10-1
for (int ledPin = 12; ledPin >=2; ledPin–) {
digitalWrite(ledPin, HIGH);
delay(prodleva1);
}
// zhasne postupně led 10-1
for (int ledPin = 12; ledPin >=2; ledPin–) {
digitalWrite(ledPin, LOW);
delay(prodleva1);
}
}18.12.2016 v 23:22 #9643posjirkaÚčastníkuuuauauauauau …. nepoučitelnej.
Nepoužíváš párové značky CODE, takže ten tvůj kod je pro všechny ostatní nepoužitelněj (ztracené — atd.)
Navíc , nevadí ti, že první směr adresuje 10 (2-11, protože máš < 12)pinů a opačný směr 11 (12 – 2 protože máš >=2)
Původní „krása“ řešení přes pole je pryč a pomocí 2 cmosů bych to udělal jednodušeji.
Jde ti o to něco se naučit, nebo jen rozblikat pár ledek ? píšu to proto, že tvoje aktuální řešní je pro jakékoliv změny strašně těžkopádné. Pro začátek dobrý. Pro další vývoj 3- .18.12.2016 v 23:51 #9645JerryÚčastníkKdyž zadám počet pinů 11 tak mi to nekomunikuje s poslední led.
19.12.2016 v 0:01 #9646posjirkaÚčastník????????????????:
for (int ledPin = 2; ledPin < 12; ledPin++) {
ledPin = 2, 3, 4, 5, 6, 7, 8, 9, 10, 11for (int ledPin = 12; ledPin >=2; ledPin–) {
ledPin = 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2už chápeš ten rozdíl? ten první příklad ti nevolá pin č. 12 …
Správně by měl být:
for (int ledPin = 2; ledPin <= 12; ledPin++) {
ledPin = 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 1219.12.2016 v 0:22 #9648JerryÚčastníkint prodleva = 40;
int prodleva1 = 80;void setup() {
// nastavení pinů pro led jako OUTPUT
for (int i = 2; i <= 11; i++) {
pinMode(i, OUTPUT);}}void loop() {
// rozsvítí postupně led 1-10
for (int i = 2; i <= 11; i++) {
digitalWrite(i, HIGH);
delay(prodleva);
}
// zhasne postupně led 1-10
for (int i = 2; i <= 11; i++) {
digitalWrite(i, LOW);
delay(prodleva);
}
// rozsvítí postupně led 10-1
for (int i = 11; i >=2; i–) {
digitalWrite(i, HIGH);
delay(prodleva1);
}
// zhasne postupně led 10-1
for (int i = 11; i >=2; i–) {
digitalWrite(i, LOW);
delay(prodleva1);
}
}19.12.2016 v 0:29 #9649JerryÚčastníkNevím jak to sem dát aby to bylo skutečně to co je v kódu. Při kopírování si to dělá co chce po editu taky a po odeslání to napíše nesmysly.
19.12.2016 v 11:19 #9651posjirkaÚčastníkje to jednuduché. Když píšeš odpověd tak nad tectovým polem, kde píšeš je sada tlačítek:
B – tučné písmo
/ – kurzíva
lINK – vkladani HTML odkazu
…
…
CODE – pro vložení kódu
UZAVRIT ZNACKY – uzavře párové značky.Funguje to tka, že píšeš normální text: sdfaergasdcargascfWG
Pak chceš vložit kód tak klikneš na CODE (vloží se apostrof), vložíš kod a buď dáš znovu CODE nebo UZAVŘÍT ZNAČKY. Opět se vloží apostrof a kod se ti dá do toho rámčeku a v původním formátu.19.12.2016 v 13:05 #9653JerryÚčastníkDíky moc to mě netrklo. Njn tak příště už to bude snad lepší.
19.12.2016 v 22:12 #9675JerryÚčastníkTak snad už to bude lepší. Dotaz .. v tomhle kódu nepůjde kombinovat výstupy D a A. Jak by to šlo vyřešit ?
int prodleva = 40; int prodleva1 = 80; int prodleva2 = 200; void setup() { // nastavení pinů pro led jako OUTPUT for (int i = 2; i <= 11; i++) { pinMode(i, OUTPUT);} } void loop() { // rozsvítí postupně led 1-10 for (int i = 2; i <= 11; i++) { digitalWrite(i, HIGH); delay(prodleva); } // zhasne postupně led 1-10 for (int i = 2; i <= 11; i++) { digitalWrite(i, LOW); delay(prodleva); } delay(prodleva2); // rozsvítí postupně led 10-1 for (int i = 11; i >=2; i--) { digitalWrite(i, HIGH); delay(prodleva1); } // zhasne postupně led 10-1 for (int i = 11; i >=2; i--) { digitalWrite(i, LOW); delay(prodleva1); } delay(prodleva2); }
19.12.2016 v 23:10 #9676posjirkaÚčastníkkod je vložen správně … gratulace. No te´d jsi se dostal do stavu, kdy to takto jednoduše nepůjde. Tak „zpátky na stromy“ a podívej se na ten můj původní kod polem. Analogové piny mají při úpoužití jako digitální čísla 14 (A0) až 19 – (A5).
tady je velmi vhodné použít pole. nemusel bys překopávat počítadlo for, ale stačilo by upravit seznam použitých pinů. Navíc bys jej mohl libovolně rozšiřovat/zužovat bez výrzné změny kodu (prostě bys jen změnil počet hodnot v poli) …19.12.2016 v 23:16 #9677JerryÚčastníkProsím nakopnout víc 🙁 Tady se nějak ztrácím to už jsem zkoušel ale nevím jak definovat OUTPUT ve void setup … myslím pole
19.12.2016 v 23:26 #9679JerryÚčastníkJinak díky za podporu a gratulaci že jsem konečně něco udělal dobře.. zítra to bude cca 20 dní co jsem poprvé viděl ardo.
20.12.2016 v 9:32 #9682BlindPÚčastníkSmyčka for – https://www.arduino.cc/en/Reference/For
Kompletní kód – https://www.arduino.cc/en/Tutorial/KnightRider
Jirka už Ti přece ten kód tady napsal.
BP20.12.2016 v 20:14 #9685JerryÚčastníkJá ale teď potřebuji zkombinovat D a A výstupy
20.12.2016 v 20:41 #9686posjirkaÚčastníkchlape, chybí ti základy. opravdu je nutné si nejdřív něco nastudovat a pak začít experimenovat. kdybyte led[] = {2,3,4,5,6,7,8,9,10,11}; //piny s LED diodamioužil ten můj kod a upravil :
byte led[] = {2,3,4,5,6,7,8,9,10,11}; //piny s LED diodami
na třeba
byte led[] = {2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19}; //piny s LED diodami
tak je to hotové. opravdu ale je třeba vyzkoušet examply a tutoriály než začneš vymýšlet svoje řešení, bez hlubšího pochopení souvislosti to prostě nejde. -
AutorPříspěvky
- Pro reakci na toto téma se musíte přihlásit.