jemiki8453
Vytvořené odpovědi
-
AutorPříspěvky
-
Vojtěch Vosáhlo
ÚčastníkDík moc, jsem na tohle asi blbej, nemohl by jsi mě nasměrovat jak číslo zjistit, kde najít? Předělává se to podle prefixů? Já fakt nevim 😀
Tady je příklad čísla jedné ze zásilek: BZ000526631CN
Díky mocposjirka
Účastníkhod sem ten kod co používáš …. když se dívám zpětně na forum tak tam jsou asi 3 verze tak a´t máme stejěné informace …
fidos
Účastníkto nevim, ale ir ledka normalne vypne, jen porad sviti led na pinu 13
posjirka
Účastníka nepřijímá ti to nějáký bordel ?
posjirka
Účastníkto jerry:
měníš zadání … jendou pracuješ s polem, pak chceš přímo řešit piny, je to trochu zmatek. Mám k tomu pár připomínek:
– používat pole jako zadání použitých pinů je velmi vhodné, pokud nepoužíváš čistou řadu čisel, ael třeba některé vynechávaš, nebo jsou na přeskáčku.
– určitě pro vkládání kúodu používej CODE jinak jak píše BlindP budou v tom zmatky. Bohužel je fórum nastaveno trochu neš´tastně a nejde třeba vkládát kod přímo z Arduino IDE „copy for forum“,
– doporučuju používat verzování jednotlivých programů a stejně tak i nauč se popisovat jednotlivé části. Teď ti to možná příjde jako ztráta času. Až budeš mít delší kod a budeš se čas od času k němu vracet budou ti ty komentáře scházet.
– já jsem se vceku brzy naučil používat odsazení vnořených procesů (for(…){}) i když tady to bude určitě z důvodu nepoužití CODE ale hlavně když uzavíráš složené závorky tak je uzavírej né na konci řádku, ale na další řádku ve vzdálenosti od okraje kde je počátek funkce od této závorky (podívej se jak mám uzavřené (for{}). Usnadní to přehled. Sice máš při kliku na závorku podbarvenou i její protikus, ale text je text.BlindP
ÚčastníkZbyšek Voda: Přehlédl jsem Vaši odpověď, odpovídám trošku později 😀 Ano mám v plánu to dál rozvíjet, ale jednak se na tom teprve učím a dál toho času taky není moc, takže nedokáži předpovědět kdy. 😀 Ale přidal jsem digitální graf zobrazující 1 nebo 0 + délku poslední vysoké úrovně v ms. Vytvoření je podobné:
Digital mujgraf; mujgraf = new Digital(x_pos,y_pos,x_size,y_size,color);
vykreslení:
mujgraf.kresli(true|false);
BPAttachments:
BlindP
ÚčastníkPro vkládání kódu doporučuji používat značky CODE:
for(int i = 2; i < 12; i++) { digitalWrite(i, HIGH); delay(prodleva); }
lépe se to čte. Můžes si i napsat vlastní funkci a zpoždění jí předávat jako parametr – https://bastlirna.hwkitchen.cz/uzivatelsky-definovane-funkce-2/ U ledPin- Ti chybí jedno mínus ledPin– – https://www.arduino.cc/en/Reference/Increment BP
EDIT: Ne máš to správně, jen tenhle font to zobrazuje dohromady, další důvod pro používání značek CODE. 🙂
fidos
Účastníkzmenil sem, ale sviti porad
Jerry
ÚčastníkPro začátečníky kteří tápou asi jako já, posílám trochu počeštěno protože na Googlu je v některých kódech už taková jazyková bramboračka, že člověk někdy neví jestli je to španělsky nebo tatarsky a není hned poznat jestli je to programový příkaz nebo jenom název proměnné.
int prodleva = 40;
int prodleva1 = 60;void setup() {
for (int ledPin = 2; ledPin < 12; ledPin++) {
pinMode(ledPin, OUTPUT);}}void loop() {
for (int ledPin = 2; ledPin < 12; ledPin++) {
digitalWrite(ledPin, HIGH);
delay(prodleva);}
for (int ledPin = 2; ledPin < 12; ledPin++) {
digitalWrite(ledPin, LOW);
delay(prodleva);}
for (int ledPin = 12; ledPin >= 2; ledPin–) {
digitalWrite(ledPin, HIGH);
delay(prodleva1);}
for (int ledPin = 12; ledPin >= 2; ledPin–) {
digitalWrite(ledPin, LOW);
delay(prodleva1);}
}Jerry
ÚčastníkJerry
ÚčastníkTak přátelé znalci trochu jste mě jako začátečníka potrápili za což i díky kopírovat kódy jdou jednoduše. Tak že co třeba takhle ? Pokud to jde ještě jednodušeji pište. Díky.
int timer = 40;
int timer1 = 60;
void setup() {
for (int thisPin = 2; thisPin < 12; thisPin++) {
pinMode(thisPin, OUTPUT);}}
void loop() {
for (int thisPin = 2; thisPin < 12; thisPin++) {
digitalWrite(thisPin, HIGH);
delay(timer);}
for (int thisPin = 2; thisPin < 12; thisPin++) {
digitalWrite(thisPin, LOW);
delay(timer);}
for (int thisPin = 12; thisPin >= 2; thisPin–) {
digitalWrite(thisPin, HIGH);
delay(timer1);}
for (int thisPin = 12; thisPin >= 2; thisPin–) {
digitalWrite(thisPin, LOW);
delay(timer1);}
}JardaL
ÚčastníkPoužívám tento program. Ping funguje ale modbus neodpovídá
*/
#include <EtherCard.h>
#include <Modbus.h>
#include <ModbusIP_ENC28J60.h>//Modbus Registers Offsets (0-9999)
const int SENSOR_IREG = 0;
//Used Pins
const int sensorPin = A0;//ModbusIP object
ModbusIP mb;long ts;
void setup() {
// The media access control (ethernet hardware) address for the shield
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
// The IP address for the shield
byte ip[] = { 192, 168, 80, 10 };
//Config Modbus IP
mb.config(mac, ip);// Add SENSOR_IREG register – Use addIreg() for analog Inputs
mb.addIreg(SENSOR_IREG);ts = millis();
}void loop() {
//Call once inside loop() – all magic here
mb.task();//Read each two seconds
if (millis() > ts + 2000) {
ts = millis();
//Setting raw value (0-1024)
mb.Ireg(SENSOR_IREG, analogRead(sensorPin));
}
}BlindP
ÚčastníkCykly a podmínky jsou základ každého programovacího jazyka, doporučuji se je naučit. 😉 Pro začátek tady – https://bastlirna.hwkitchen.cz/seriova-komunikace-a-cykly/ A nebo si pod stromeček naděl „Průvodce světem arduina“ – jde stáhnout i jako pdf. 😀 Hodně štěští. BP
posjirka
Účastníkco je na tom těžkého 🙂 … dělám si srandu každej něják začínal:
/* BARGRAF V1 BY J.POSPISIL 12/2016 */ // promenne byte led[] = {2,3,4,5,6,7,8,9,10,11}; //piny s LED diodami // byte pocet = 10; //počet diod int rychlostP = 70; int rychlostL = 70; void setup(){ // nastaveni vystupu for (int a=0; a <= sizeof(led)-1; a++){ pinMode(led[a], OUTPUT); digitalWrite( led[a] , LOW ); } } void loop(){ // postupne rozsvit 2 - 11 for (int a=0; a <= sizeof(led)-1; a++){ digitalWrite( led[a] , HIGH); delay(rychlostP); } // postupne zhasni 2 - 11 for (int a=0; a <= sizeof(led)-1; a++){ digitalWrite( led[a] , LOW); delay(rychlostP); } // postupne rozsvit 11 - 2 for (int a=sizeof(led)-1; a >= 0; a--){ digitalWrite( led[a] , HIGH); delay(rychlostP); } // postupne zhasni 11 - 2 for (int a=sizeof(led)-1; a >= 0; a--){ digitalWrite( led[a] , LOW); delay(rychlostP); } }
Jerry
ÚčastníkTak přátelé znalci troch jste mě jako začátečníka potrápili za což i díky kopírovat kódy jdou jednoduše. Tak že co třeba takhle ? Pokud to jde ještě jednodušeji pište. Díky.
int timer = 40;
int timer1 = 60;
void setup() {
for (int thisPin = 2; thisPin < 12; thisPin++) {
pinMode(thisPin, OUTPUT);}}
void loop() {
for (int thisPin = 2; thisPin < 12; thisPin++) {
digitalWrite(thisPin, HIGH);
delay(timer);}
for (int thisPin = 2; thisPin < 12; thisPin++) {
digitalWrite(thisPin, LOW);
delay(timer);}
for (int thisPin = 12; thisPin >= 2; thisPin–) {
digitalWrite(thisPin, HIGH);
delay(timer1);}
for (int thisPin = 12; thisPin >= 2; thisPin–) {
digitalWrite(thisPin, LOW);
delay(timer1);}
}posjirka
Účastníkto bude tím, že cela zprava konci bitem 1. potom ve smycce se to už nenuluje.
zkus použít zpravu = „2“fidos
Účastníkjeste mi neni jasna jedna vec, a to ze, po prvnim signalu na reciever se zapne ledka na pinu 13 a sviti porad, i kdyz se ir led vypne. Pak se pri pohybu zase ir ledka zapne a vypne atd. Ale na pinu 13 ledka sviti porad, od prvniho prijmuti signalu…
posjirka
Účastníkví bůh … já tam radši odpor aspo¨n 100R dávám…
fidos
Účastníkon tam ale na instrucables odpor nema, myslis ze bych moh tim odpalit nejake obvody na vysilaci? Ir ledka ale blika – i kdyz nevim ,jestli blika tak jak ma no.
Aleš
ÚčastníkDivím se, že u tohoto:
http://arduino-shop.cz/arduino/1005-arduino-bluetooth-modul-hc-05-1427822941.html
také nenapsal, že je to WiFi, když to běží na 2,4GHz 🙁ArduXPP
ÚčastníkNení to wifi karta, ale zařízení které umožňuje komunikaci přes 2.4 GHz.
Jedná se o nRF24L01 a nechápu proč to tam prodejce nenapíše.
Na vlastních stránkách má http://navody.arduino-shop.cz/navody-k-produktum/arduino-wifi-modul-nrf24l01.html a píše tam, že “ Je ale nutné zdůraznit, že není možné se pomocí modulu nRF24L01 připojit na domácí síť WiFi“ .Jestli znamena Wifi ještě něco jiného než jen název pro technologii wifi, tak pak by měl prodejce upozornit co myslí, ale v popisu píše, že se jedná o nRF24L01.
posjirka
Účastníkvezmu to od konce.
Test LCD funguje tak, že že ho nahraješ do arduina, otevřeš si v Arduino IDE serial monitor a píšeš, co chceš aby se ti zobrazilo na LCD.
Občas tam bývá chyba bu´d ve špatně nsatvené rychlosti komunikace, nebo nemáš zapnuté „new line“ a program ti nedetekuje správně to co jsi psal.K tomu hlavnímu programu.ukážu ti část programu a musí ti to být jasné:
// nastaveni pinu displeje LiquidCrystal lcd(8, 9, 4, 5, 6, 7); #define davkovaniPelet 2 //davkovani pelet snek #define spirala 3 //zapalovaci spirala #define ventilator 5 //ventilator #define alarm 6 //signalizace poruchy #define kotlovyTermostat 8 //kotlovy termostat
používáš ty samé piny jak pro relé tak pro komuniakce i s LCD. to nejde. musíš použít každý zvláš´t. Mě to trklo až když si napsal, že ti cvakají relátka 🙂
johnyhol
ÚčastníkTo posjirka: po připojení relé jsem zjistil, že mi to při jakýmkoliv zápisu(LCD) do smyčky hází poruchu a relé cvakají jako o život. Takže tam je asi problém. Jinak odpověď na otázku: `předpokládám, že se ti ve smyčce nic nezobrazuje a zobrazí se tit o až op sepnutí termostatu. („FOTOBUNKA“).
Vidím tu problém ten, že ve smyčce LOOP() není žádná prodleva pro LCD a tak když se nic nedej neustále se maže a zobrazuje LCD.`
je, že to nikdy nic nezobrazilo, jenom hodnotu ze setupu: „NAST.VSTUPY/VYST“.Ještě mě napadlo udělat to zobrazování pomocí funkce „SerialDisplay“ z příkladů v Arduino IDE. (tzn. zobrazovat už vytvořený popisy jednotlivých stavů ze seriový linky) Zkoušel jsem to tedy zakompilovat do kódu, ale to taky nic nedělalo. (nezobrazovalo) Pak jsem tedy zkusil udělat test přímo v příkladu z IDE, ale tam to taky nefunguje. Nechápu to! Máte s tím někdo zkušenosti?
Tady je ta zkouška:// include the library code: #include <LiquidCrystal.h> // initialize the library with the numbers of the interface pins LiquidCrystal lcd(8, 9, 4, 5, 6, 7); void setup() { // set up the LCD's number of columns and rows: lcd.begin(16, 2); // initialize the serial communications: Serial.begin(9600); } void loop() { Serial.println("TEST ZOBRAZENI"); // when characters arrive over the serial port... if (Serial.available()) { // wait a bit for the entire message to arrive delay(100); // clear the screen lcd.clear(); // read all the available characters while (Serial.available() > 0) { //lcd.setCursor(0, 0); // display each character to the LCD lcd.write(Serial.read()); } } }
Díky všem za reakce!
posjirka
Účastníkotázka jak dlouhé záznamy a kolik záznamů chceš používat.
Pokud to bude 1-2 do 10-20s tak se to dá vyřešit jinak než přes arduino:
https://www.postavrobota.cz/Modul-nahravani-zvuku-ISD1820-10s-reproduktor-d88.htm
pro spuštění můžeš místo RFID čtečky použít konektor. Vem si konektor třeba 9pinový cannon.
1.pin bude zem a máš možnosti spínat nezávisle 8 modulu (co pin to PLAY 1 modulu)Dřív jsem dělali takový věci jako audio pamě´t s EEPROM. Ve výsledku šlo o scilátor, posuvný registr, pamě´t a ADC/DAC převodík (většinou 4 bitový). ten modul nohoře to ale už umí a nestojí moc.
Při tomhle řešení ušetříš programování arduina, komunikaci s RFID, moduly MP3, SD kartu atd.
Pokud budeš chtít jít do arduina tak počítej s:
– Arduino (100-500 kč podle typu a místa nákupu)
– mp3 modul (250 kč– sd karta (asi nějákou doma najdeš ale jinak 100-200 kč)
– čtečka RFID ( 150 – 200 kč)
– tokeny (kus 10-15 kč)
– zesilovač + repro (cca 100 kč)
– zdroj, atd bude podobné pro jaké koliv řešení
k tomu hodiny hledání po internetu, dotazy, programování ,….steebe
ÚčastníkDobrý den – již je vyřešeno. Děkuji.
posjirka
Účastníkmáš pravdu … tech vlastních znamků je max 8 (0-7).
Delay taky nemám rád, ale tady mi přišel jako vhodný, protože celý kod je vlastně jen odkrokovaná smyčka s krokem po jednotlivých funkcích. Tady by se změna detekovala celkem neprakticky. Jedině stejně jako je chybový registr tak zavést stavový, ten měnit a regaovat na něj při zobrazení.
ve výsledku bys v každémkroku (někdy i vícekrát) volal pod funkci na změnu zobrazení.
Osobně bych šel do vlastních znaků. 8 ikon v pohodě stačí. Zobrazoval by se jen stav jaký je požadován + některé hodnoty proměnných .
rozhodnutí ale nechávám na johnyhola .. přeji jen je to jeho zařízení.bcsedlon
Účastníkzdravim, je-li nabidka stale platna ozvete se na bcsedlon@gmail.com
bcsedlon
Účastníkzdravim, je-li nabidka stale platna ozvete se na bcsedlon@gmail.com
Luke_CZ
Účastník1, a co raději vyhodnocovat, zda ke změně stavu došlo? Tedy jednoduše dát globální boolean proměnnou (výchozí FALSE), pokud dojde ke změně stavu, pak nastavit tuto proměnnou na TRUE (přímo ve proceduře). V případě, že je proměnná TRUE tak změnit text na LCD a nastavit proměnnou zpět na FALSE, pokud je FALSE, tak nic na displeji neměnit.
Tedy přepisovat jen tehdy, kdy je potřeba a co je potřeba.
Delay je sice řešení, ale takové kostrbaté, navíc delay v tomto případě jen brzdí běh programu.
2, lze jen souhlasit, navíc jde, pokud použiješ char jako pole, krásně text zarovnat na střed displeje, je to opticky mnohem výraznější, než vše psát od kraje.
Jen malé doporučení: Texty vypisuj na LCD přes makro F(), ušetříš si SRAM
3, na LCD lze udělat pouze 8 vlastních znaků pro jedno zobrazení(TO posjirka: ty umíš víc?). Nic proti ikonám, ale na rastru 5×7 moc zázraků nepředvedeš.L.
posjirka
Účastníkpředpokládám, že se ti ve smyčce nic nezobrazuje a zobrazí se tit o až op sepnutí termostatu. („FOTOBUNKA“).
Vidím tu problém ten, že ve smyčce LOOP() není žádná prodleva pro LCD a tak když se nic nedej neustále se maže a zobrazuje LCD.
Vidím 3 řešení:
1, misto
lcd.print("FOTOBUNKA");
dejlcd.print("FOTOBUNKA"); delay(500);
2, nedavej lcd.clear() ale zapisuj texty tak dlouhe aby přepsal všechny znaky v řádku
3, místo sáhodlouhých popisků procesu použij ikony. Může na LCD uědlat až 15 vlastních znaků. ty můžeš dát jako reakce na nějákou funkci. Příklad 1. ikona bude plamen. dáme jí pozici 0,1. Když bude fotobuńka vidět plamen zobrazí v té pozici 1. ikonu, když né zapíše do této pozice mezeru. Cílem je nemazat LCD, ale neustále jej přepisovat. pro pozici 0,3 dámetřeba hvězdičku (nemusíš psát, máš již ve znakové sadě). Když bude zapalovat pelety, objeví se v této pozioci hvězdička jinak mezera ,….
jak s tím začít by to moholo pomoci toto:
https://omerk.github.io/lcdchargen/nechám výběr na tobě … .
-
AutorPříspěvky