nielda
Vytvořené odpovědi
-
AutorPříspěvky
-
BlindP
ÚčastníkCelé je to nějaké tajemné jako hrad v Karpatech 😀 Je něco s čím můžeme pomoct? Věřím, že už se spousta lidí nemůže dočkat.
3.6.2017 v 18:58 odpověď na: ARDUINO Mega2560 – přepínání analogReference() za chodu programu #11663BlindP
ÚčastníkPosjirka ma ale pravdu, podivej se jeste jednou na ten obrazek. Kdyz zmenis referenci ovlivni to vsechny piny a v TUTO chvili nebude fungovat touch shield (coz mozna nevadi, do te doby nez tapnes na display 🙂 ) A ze by posjirka psal blaboly se mi nezda, nema kristalovou kouli a ty jsi neposlal kod, takze se tezko radi…BP
3.6.2017 v 14:07 odpověď na: ARDUINO Mega2560 – přepínání analogReference() za chodu programu #11659mpcz
ÚčastníkZdravím,
říká moc, měla by být úměrná situaci, ale pokud někdo opakovaně nabízí bláboly, umocněné navíc třemi vykřičníky, je vhodné ostatní varovat. Fóra slouží k tomu, aby tam našli lidé pomoc, ušetřili čas, ne naopak.
Co se týká toho tvého odkazu, (ten pán tam ale řeší poněkud odlišnou situaci) četl jsem i viděl varování na „několik“ vadných čtení po přehození reference na ofic. stránkách Arduina.
Moje zkušenost s přepínání dvou interních referencí je poněkud odlišná.
Celé se mi to jeví tak, že reference se samotným příkazem nepřepne, dojde k tomu až po prvním čtení z portu. To první je sice přesné, ale řízené původní referencí. Každé následné je již přesné (delay 5 ms), již podle nové reference, alespoň v mých poměrech jsem nezaznamenal žádné chyby. Toto jsem nevyčetl někde na webu, ale v praxi odzkoušel a aplikace, kde je to implementované funguje správně.
mpcz, 03.06.20173.6.2017 v 13:44 odpověď na: ARDUINO Mega2560 – přepínání analogReference() za chodu programu #11658BlindP
Účastníka co trochu slusnosti ti nerika nic? :/
The first ADC conversion result after switching reference voltage source may be inaccurate, and the user is advised to discard this result.
mpcz
ÚčastníkZdravím,
ano, to ano, ale ten titulek „přepínání ZA CHODU programu“ ti neříká nic?
mpcz, 03.06.20172.6.2017 v 13:04 odpověď na: ARDUINO Mega2560 – přepínání analogReference() za chodu programu #11656posjirka
Účastníkkdyž se podívaš na datasheet tak zjitíš, že přiřazuješ 1 refernci na všechny piny !!!
http://www.imgup.cz/image/LgXt2.6.2017 v 12:24 odpověď na: ARDUINO Mega2560 – přepínání analogReference() za chodu programu #11655mpcz
ÚčastníkZdravím,
no co na tohle říci, opravdu nevím. Proč myslíž, že jsem to řešil? No aby fungoval správně touch i ADC s RN 1V1. A když píši, že je vše OK, tak JE to OK.
Touch je přeplý na správné napětí a AD má také správné ref. napětí.
mpcz, 02.06.20172.6.2017 v 12:08 odpověď na: ARDUINO Mega2560 – přepínání analogReference() za chodu programu #11654posjirka
Účastníktrochu bych se bál co udělá AI pro touche panel když se mu změní refernce na 1,1V….
Lepší varianta je asi buď použít externí převodník pro nižší napětí, nebo se smířit s hrubší LBA.vojjta
Účastníkmoje zkusenost je, ze ono to funguje po nejakou dobu ale postupem casu se to unavi a pak tramtadada do kremikoveho nebe:) nicmene u DUE by to melo byt ok… Osobne tyhle veci resim napetovou delickou 120 Ohm / 240 Ohm, dava to pak krasnych 3.3v;). Na SPI to funguje krasne
mpcz
ÚčastníkZdravím,
můj názor je takový:
Jedná se pouze o to, zda na převodníku I2C-LCD JSOU, či NEJSOU osazené pullupové rezistory, bývají okolo 5kOhm. Na převodnících, které používám nejsou, ostatně není dobré dávat poolupy na Slave, při větším počtu se nám celková hodnota úměrně pokrátí.
Pokud na převodníku jsou, lze je odpájet a je to pořešené. Zjistíme jednoduše lupou nebo ohmetrem: 5V oproti datové lince.
Napěťové úrovně jsem dal i na osciloskop a je to tak, na lince běhá úroveň pouze do 3V. Tento problém se samozřejmě týká pouze připojení LCD s 5V na ARDUINO DUE (3V).
Na Mega2560 atd. není co řešit, obojí je na 5V.
mpcz, 02.06.2017mpcz
ÚčastníkZdravím,
tak nakonec jsem na to přišel po řadě pokusů. Nic složitého, je třeba:
1/ přehodit referenci na potřebnou, kterou deska umožňuje
2/ udělat jedno čtení ze vstupu, výsledek zahodit
3/ delay(5)
4/ další čtení jsou již OK
Odzkoušeno na mega2560, vše funguje, jak má.
mpcz, 02.06.2017posjirka
Účastníkjo je tam kompenzační odpor, ale já jsem radši opatrný. Jistota je kulomet a pár převodníků odpálených po cca 1-5 měsících už jsem viděl. Podobně je na tom ESP8266. Hodně lidem funguje komunikace UART na 5V … 🙂
vojjta
ÚčastníkNo Due je 3.3V, nicmene na strankach Arduina se lze, dozvede, ze na i2c s 5V zarizenim funguje a nikterak mu to neublizi, tusim, ze ma na SDA pinu pul up resistor, ktery kompenzuje rozdil napeti. Nicmene nevim zda ve vychozim stavu je zapnuty
posjirka
Účastníkpředpokládám, že to „ps:“ je asi na mě.
No možná by nebylo do věci si to opravdu nastudovat. Obávám se, že na mé straně asi chyba nebude.Já vím jak funguje I2C komuikace a pokud MCU funguje v napěťové hladině 3,3V a ty pojedeš po sběrnici 5V tak ti opravdu hrozí odpálení výstupu. Resp. jeho poloviny při spínání +3,3V. Tady totiž není výstup typu otevřený kolektor …. 🙂 Všechny piny jsou navíc chráněny přes diody na napájecí napětí tzn. pokud tam bude víc než je napájecí napětí, hrozí i odpálení samotného MCU. To ti ani stabilizátor nepobere, protože funguje jednosměrně …..No hlavně jsem rád, že máš vyřešeno, třeba to někomu může usnadnit zbytečné pátrání po chybě, kterou vlastně neudělal.
mpcz
ÚčastníkZdravím,
tak to jsem nakonec pořešil úpravou SW. Celý problém spočívá ve velkém počtu různých PCB, které vedou piny z chipu na piny LCD.
Ohmetr, tužka a papír to řeší, pak změna parametrů a jede to.
Narazil jsem na 4 různé druhy PCB pro jeden chip.
mpcz, 31.may.2017
p.s pokud někdo dává rady a varování ohledně odpálení chipu (velmi častá rada), asi přesně neví, jak chodí komunikace na I2C, doporučuji to podrobně prostudovat. Dle mého žádné nebezpečí nehrozí. LCD chodí naprosto bez problémů.posjirka
Účastníkono je těch otazníků mnohem víc. Například jak dlouheé zvuky to mají být? V jaké kvalitě? Kdysi jsme řešili takový základní zvukový modul s eeprom pamětí a „zvukovkou“ covox. tedy bez procesoru ale nic moc kvalita….
jinak samozřejmě existuje spousta modulů jak psal už Vojtěch. Ty lze spínat řeba tranzitorem/tlačítkem nezávísle. Prostě co repo to 1 modul. Jsi tu ale omezený délkou záznamu. MP3 je super formát pro jakékoliv použití, jen je to jak s kladivem na komára.
možné řešení je třeba i 5x toto:
http://robotstore.cz/obchod/arduino/isd1820-zvukovy-modul-nahravani-arduino-atmel-20s/záleží co vlastně chceš ….
Vojtěch Vosáhlo
ÚčastníkJde to s arduinem udělat? Ano. Je na to vhodné? Asi né tak úplně, raspberry by mohlo být třeba lepším a jednodušším řešením, je otázka na co se vy cítíte.
Jde o takovou důležitou maličkost. Musí „projekt“ umět hrát několik věcí najednou? Např. rep 1 hraje tón 1 zatímco 2 hraje tón 2.
Na přehrávání zvuků existuje mnoho modulů, pak se to dá řešit i pomocí knihovny jen s arduinem, ale vše závisí na předchozí otázce…
posjirka
Účastníkasi bude problém v kodu pro SLAVE. používáš tam
tlacitko1 = Wire.read(); tlacitko2 = Wire.read();
při čtení streamu. To ti nepůjde. Přečte 1 Byte a očekává další, ale ten nepřijde.
Musíš si přečíst pouze 1 a pak rozhodnout co je to zač.upravil bych to asi takto:
#include <Wire.h> const byte slaveId = 1; void setup() { Serial.begin(9600); Wire.begin(slaveId); Wire.onReceive(receiveEvent); pinMode(8, OUTPUT); pinMode(9, OUTPUT); digitalWrite(8, LOW); digitalWrite(9, LOW); } void loop() { } void receiveEvent(int howMany) { char tlacitko1; // uprava char tlacitko2; while(Wire.available() > 0) { tlacitko1 = Wire.read(); // uprava tlacitko2 = Wire.read(); if (tlacitko1 == 'a') { Serial.println("=> Tlacitko1 = zapnuto"); digitalWrite(8, HIGH); delay(1000); } else if (tlacitko1 == 'b') // uprava { Serial.println("=> Tlacitko2 = zapnuto"); digitalWrite(9, HIGH); delay(1000); } else { digitalWrite(8, LOW); digitalWrite(9, LOW); delay(100); } } }
posjirka
Účastníkrobofu7
Účastníknakonec byla chyba v komunikaci FTDI , takže jsem nahrál nastavení pro multiwii 2.4 , trošku pátral po netu a donastavil v GUI ,kalibroval jsem ESC a Gyro, ale dron je nestabilní a pořád osciluje nahrál jsem video jak se chová
mildis
ÚčastníkKluci děkuji za příspěvky, nemám to na běžné používání . Mám to pouze jako výukovou pomůcku . Ten můj sketch z prvního příspěvku jsem objevil na youtube a funguje neomylně, jen tam bohužel není ta možnost vypnutí druhým tlačítkem . Vypnutí resetem mě nepříjde moc profi :). Nicméně kdybych propojil hlavní napájení přes tepelné relé a jedním relátkem a tlačítkem bych samozřejmě mohl celí systém taky odstavit . Chtěl jsem jen stávajíci program vylepšit o pouhé vypnutí . Přikládám video kde jsem čerpal .
delta starpetan
ÚčastníkRomanB má pravdu. Signál pro relé je LOW, ne HIGH. To není moc dobré, pokud Arduino vypadne a nenaběhne. Tak se všechny zapnou? WTF?
V mým programu by mělo stačit přehodit LOW za HIGH a opačně. Ale tím že relé je sepnuto v log. 0 me nepřijde úplně nejlepší varianta.Pokud je rozběh řízen pomocí PLC, tak je často vhodné zapojit první stykač za reléovou logiku (popřípadě bezpečnostní modul) a ostatní spínat pomocí PLC (nahradí v podstatě časový spínač). Stejně jako to je v tomto článku: https://www.mylms.cz/text-rozbeh-hvezda-trojuhelnik-s-modulem-siemens-logo/ Stykač KM1 je ovládán přímo tlačítky (včetně nouzového vypnutí) a zbylé dva stykače (běh do Y a do D) je ovládán z PLC.
RomanB
ÚčastníkZdravím, použití Arduina pro tuto funkci není moc vhodné, držel bych se raději logiky pomocí relátek a časového relé. Já osobně mám na cirkuli jenom otočný přepínač + ochrany a je to dostačující.
Pokud se podíváš na schéma spouštění s relátky, uvidíš, že cívky stykačů jsou vzájemně blokovány a to je velmi důležité i v případě použití Arduina. To aby stykače „nešly do sebe“. Dále doporučuji použít nadproudovou ochranu (pomocný kontakt propojit s cívky stykačů) nebo motorový spouštěč a ten může zároveň plnit funkci hlavního vypínače. V logice by měl být také použitý nouzový STOP, ale ne jako vstup do Arduina.
Funkce delay() bych se nebál a signál pro sepnutí relátek je LOW ne HIGH.
Zbyšek Voda
ÚčastníkDobrý den, jak se chyba projevuje?
Píše něco IDE? Nějakou chybovou hlášku?mildis
ÚčastníkAhoj, moc děkuji. Odzkoušel jsem to, ale nastává jeden problém, po naprogramování a spušění Una se okamžitě spustí všechny tři relé . Možná dělám někde chybu
petan
ÚčastníkSnad to bude pochopitelný. Nezkoušel jsem to, ale mělo by to snad fungovat.
Samozřejmě, není nutný po celou dobu zapínat digitální výstupy, ale ničemu to nevadí. Doporučuji vyvarovat se použití příkazu delay();//Rozběh Y-D //Je nutné elektricky a nejlépe i mechanicky blokovat stykače Y a D #define tlStart A0 #define tlStop A1 #define stStart 1 #define stStar 2 #define stDelta 3 int systemState; //stav systému 0 - vypnuto, 1 - provoz Y, 2 - přepínání, 3 - provoz D long casBehu; //čas po který je motor spuštěn do hvězdy void setup() { pinMode(tlStart, INPUT); //tlačítko START pinMode(tlStop, INPUT); //tlačítko STOP pinMode(stStart, OUTPUT); //hlavní stykač pinMode(stStar, OUTPUT); //stakač pro hvězdu pinMode(stDelta, OUTPUT); //stakač pro trojuhelník } void loop() { if (digitalRead(tlStop)){ //stisknuto tlačítko STOP systemState = 0; //vypnout motor } switch (systemState) { case 0: //motor je vypnut digitalWrite(stStart, LOW); //pro sichr vypnout stykač digitalWrite(stStar, LOW); //pro sichr vypnout stykač digitalWrite(stDelta, LOW); //pro sichr vypnout stykač if (digitalRead(tlStart)){ systemState = 1; //zapnout motor casBehu = millis(); //uložit čas sepnití motoru } break; case 1: //motor se rozbíhá zadaný čas v konfiguraci Y digitalWrite(stStart, HIGH); //zapnout hlavní stykač digitalWrite(stStar, HIGH); //zapnout stykač Y if (millis() >= casBehu + 5000){ //pokud motor běží už 5s tak přepni stav systému na 2 systemState = 2; //další krok casBehu = millis(); //uložení aktuálního času } break; case 2: //před přepnutím do D je nutné vypnout stykač pro běh do Y a počkat digitalWrite(stStart, HIGH); //zapnout hlavní stykač digitalWrite(stStar, LOW); //pro sichr vypnout stykač if (millis() >= casBehu + 500){ //pokud od vypnutí stykače uplynulo 0,5s zapni stykač pro běh do trojuhelníka systemState = 3; //další krok } break; case 3: //provoz do D digitalWrite(stStart, HIGH); //zapnout hlavní stykač digitalWrite(stStar, LOW); //pro sichr vypnout stykač break; } }
Jerry
ÚčastníkAhoj trochu jinak RFID.
Umím načíst kód čipů a použít je v jiném programu. Vzhledem k tomu že programování až tolik není moje silná stránka se obracím sem s prosbou o pomoc zdali je to vůbec možné.
Mám např. přístupový systém pro X lidí, ale potřebuji čipy přidávat či odebírat z kódu. Je možné např. abych si vybral jeden čip který mi přepne program do stavu načítání nových čipů nebo resp. odebírání a pak se vrátil do režimu čtení. Jde o to, že by se kód čipu musel přidat nebo odebrat z kódu a tam už nevím jak.Díky
Jarda_1
ÚčastníkPro inspiraci moje sondy, nerezový drát průměr 2mm (koupené v cyklo prodejně – dráty do výpletu kola, 1ks délky 290mm za 3Kč). Držák a krytka vytištěné na 3D tiskárně, kablík/dvoulinka na dráty přiletován, jde to blbě ale jde to.
Attachments:
GARDUINOCZ
ÚčastníkS tím čidlem máš asi pravdu. já tedy ty kontakty ještě výrazně pocínoval, ale tak uvidím jak dlouho vydrží v praxi a paralelně budu hledat jiný způsob řešení. Třeba ten, který zmiňuješ. Co se týká senzoru HC-SR04, tak zrovna dnes na něj budu psát krátký článek. Tedy bude prakticky připojen právě v sudu ve venkovním prostředí a uvidíme jakou bude mít životnost. Co jsem tak mrknul na netu, tak se dělají i vodotěsné. Tedy desku umístit do nějaké krabičky a nechat koukat jen vodotěsná čidla. Ale nejdříve otestuji ten HC-SR04.
Jarda_1
ÚčastníkPůvodně jsem to také tak chtěl řešit, ale mám několik odrůd a každá rostlinka je jinak velká takže mají naprosto rozdílný požadavek na množství vody. Naštěstí jich mám pouze 8 – 10 tak to snad zvládnu zalévat samostatně. Jsem ve fázi pokusů s různými čerpadélky a elektromagnetickými ventily.
Ke snímání vlhkosti je určitě nepoužitelné čidlo které máš na stránkách, poměrně rychle zkoroduje a asi je zbytečný i ten modul YL-38. Chce to použít nerezové sondy a dají se připojit přímo na vstup Arduina a pouštět na ně napětí jen při měření.
Docela by mě zajímalo, zda modul HC-SR04 vydrží venku ve venkovním prostředí v sudu nad vodou delší dobu, měří docela dobře, ale nevěřím že vydrží celou sezonu. A vodotěsný modul je použitelný až asi od 60cm. -
AutorPříspěvky