posjirka
Vytvořené odpovědi
-
AutorPříspěvky
-
posjirkaÚčastník
hlavně že se an to přišlo … gratuluju
posjirkaÚčastníkviděl bych to na špatný řadič USb nebo zkrat na desce.
Ještě se podívej jeslti máš originál, nebo klon s Ch340g …posjirkaÚčastníkjen taková ukázka co se s tím dá dělat:
http://arduino.sk/viewtopic.php?f=3&t=158&sid=981171771b9260b43407becd96a2e9d7posjirkaÚčastníkno viděl bych 3 možné cesty:
1. vykašlat se na arduino a jít analogovou cestou:
je to jednodušší , bez programování a není tam co pokazit (kromě síly vstupního signálu)
2. jít cestou analýzy audio signálu (tady je lepší použít třeba Arduino Zero nebo něco s vyšším výpočetním výkonem, je třeba dost vzorků pro analýzu a následně to projít).
http://www.instructables.com/id/Arduino-Processing-Audio-Spectrum-Analyzer/
3. použij arduino jako doplněk k PC, ze kterého hudbu přehráváš. Použitý plugin v PC je schopen vše zanalyzovat a poslat data do Arduina, který by fungoval jako spínač pro konkrétní světla:
http://www.instructables.com/id/How-to-Make-LEDs-Flash-to-Music-with-an-Arduino/?ALLSTEPS
http://www.instructables.com/id/Arduino-RGB-LED-Music-Lights/?ALLSTEPSposjirkaÚčastníkpodle mě je problém ve 2 stupních:
1. proč znovu v každé smyčce LOOP inicializuješ LCD? – za mě vypustit stačí v SETUP
2. Na co potřebujeě refresh 100ms myslím si že 1 – 5s jsou úplně v pořádku, takže ten delay(100); změň na delay(2000);add.1. při inicializaci se ti smaže celý text na LCD zbytečný rušivý element
add.2. 100ms = 10 Hz obnovovací frekvence + doba měření teploty to oko ztěží zareagujeposjirkaÚčastníksorry za opožděnou reakci (dovolená). Já takto občas něco programuju a funguje mi to v pohodě.
Zkusím to popsat bod po bodu a projdi si to taky tak. Přes SEEEDUINO (klon Duemilanove) budu programovat klon Arduino MINI PRO.
1. přes USB kabel propojím SEEEDUINO s PC
2. vyberu FILE – EXAMPLES – ARDUINOISP
3. vyberu TOOLS – BOARD – Arduino Duemilanove w/ATMEGA328
4. vyberu FILE – UPLOAD
5. až dojede do konce odpojím od PC
6. v SEEEDUINO dám kondenzátor 10uF/16V mezi reset (+) a GND (-) – kvůli automatickému resetu
7. propojím drátky SEEEDUINO – MINI
+5V – +5V
GND – GND
D13 – D13
D12 – D12
D11 – D11
D10 – RESET
8. v programu Arduino IDE vyberu FILE – EXAMPLES – 01.BASIC – BLINK
9. vyberu TOOLS – BOARD – ARDUINO MINI W/ATMEGA328
10. přes USB připojím SEEEDUINO s PC
11. vyberu FILE – UPLOAD
12. hotovo ….posjirkaÚčastníkprostuduj si toto:
https://pihrt.com/elektronika/295-arduino-icsp-programatorposjirkaÚčastníkpředpokládám, že bylo myšlno spíš jiné řešení, než stávající. T5eba pomocí GSM modulu = prozvoněním tohoto telefoního čísla, nějákým jiným ze seznamu by se otevřela brání … chápu to správně?
posjirkaÚčastníkmáš jej zapojený obráceně.
Být tebou použiju NPN tranzistor, lépe se vysvětluje funkce.
Jde totiž o to, že NPN tranzistor spíná při připojení kladného napětí na bázi proti emitoru.
PNP funguje stejně jen reaguje na záporné napětí báze proti emitoru … .
Zapoj to u NPN tranzistoru takto:
+5V dej na motor (pozor dej tam i antiparalelní diodu ať si nezu… Arduino i tranzistor)
Druhý pin motoru dej na kolektor tranzistoru (BC337)
Emitor tranzistorudej na GND
Dej odpor mezi bázi tranzistoru a pin Arduina nebo +5V.To ti fungovat bude a nebudeš s tím mít problém. Pokud ti jde o ztráty v tranzistoru můžeš použít typ (MOS) FET.
posjirkaÚčastníka neměla by ta báze tranzistoru být na nějákém funkčním pinu Arduina 🙂
Ideálně s PWM výstupem …posjirkaÚčastníkto letakp:
dej sem kod cos napsal, třeba příjdeme na příčinu. Osobne si myslím, že je to jak psal vnouzirozbijsklo . pokud čas zobrazuješ jen na začátku smyčky loop() a začne se rozsvěcovat LED tak 255 kroků * 5s = cca 21 minut tj. doba kdy ti asi nereaguje ten LCD display. Zkus si ještě rozmyslet jak by vypadalo to zobrazení na LCD. klidně napiš jeden příklad a podíváme se na to.posjirkaÚčastníkřekl bych, že chyba je v toleranci použitých odporů.
Když jsem si zkusil vypočítat jak by to mělo vypadat při 100% přesných odporech tak jsou tam vcelku dostatečné odstupy. Při toleranci 1% by to neměl být problém i když tolerance adc převodníku je 1 lba. v těch nejnižších klávesach je odstup 4 kroky takže 3 +/-1. na to se da navázat. Jen jepotřeba krátký vodič, ideálně stíněný a stabilní napětí zdroje. Případně můžeš použít převodník pro I2c. Přepokládám, že tam máš zapoejný min. RTC modul …Attachments:
11.7.2016 v 23:26 odpověď na: Jak po stisku tlačítka zapsat a odentrovat hodnotu do serial boxu. #7689posjirkaÚčastníkdej sem prosím celý kod a hlavně ZAPOJENÍ. Připadá mi, že :
– buď používáš víc než 1 Arduino na 1 seriové lince (to by teoreticky ani nemělo jít)
– nebo se snažíš poslat si příkaz sám sobě uvnitř arduina.Předpokládejme, že je to ten druhý případ. V tu chvíli bych oddělil vykonání příkazu od čtení seriové linky. Vy tvoř funkci “ void provedAkci(int pocet) “ … a tu zavolej z funkce “ process_line() “ s počtem opakování.
Druhý přístup uděláš po stisku tlačítka = zavoláš tu samou funkcis tím samým počtem akci.
Pro to několikanásobné „stiknutí talčítka“ stačí použít podmínku aby po stisku reagoval na další stisk třeba až po 0,5s (pomocí funkce millis() si zjistíš aktuální strojový čas a po stisku s ho zapíšeš do proměnné. Tu pak porovnáš s aktuálním millis() a pokud bude rozdíl větší než třeba 500 tak reaguj znovu.Zkus si ten tvuj prvotní dotaz přečíst třeba po měsící. Myslím že ani ty sám sebe nepochopíš. Prostě člověk v 1 chvíli má myšlenku a zdá se mu, že na světě jen přeci jen ta jedna jediná varianta a nic jiného, tak proč se zdržovat nějákým složitým popisem. To nění kritika. každý z nás takto začínal a po čase pochopil, že je to prostě jinak a je třeba dávat ÚPLNÉ a CELISTVÉ informace. Jinak se mezi ssebou lidi zbytečně štěkají a k řešní to nepřispěje.
posjirkaÚčastníkPředpokládám, že se jedná o servopohony průmyslového charakteru a ty jdou ovládat i jinými způsobem. Např. 3 bod pohon vlatně jen spíná napájení na civky „+“ a „-„. má doraz takže se dá natvrdo překlopit na jednu stranu. Regulace je pak řešena tak, že přidáváš/ubíráš otevření/zavření ventilu. Polohu snímáš bu´d ponteicometrem na hřídeli pohonu, nebo se dá udělat, to, že např.1x za den/týden se nechá ventil úplně uzavřít (nechaš ho třeba 2 minuty jet na 1 stranu). Pak u každého pohonu máš jak dlouho mu trvá přejet z 0 na max. Stačí jen měřit čas jak dlouho spínáš tu a tu cívkua určíš si orientační polohu…
překlad 0-5V na 0-10V samozřejmě jde, je to jakš/takš lineární ale je to to co opravdu chceš?posjirkaÚčastníkněják tam nevidím to zpoždění 750ms mezi měřením …
ověřil sis hodnotu „hyst“-ereze jak se ti v daném čas mění,
Zkusil bych rozdělit program na měření, vyhodnocení s podmíněnou reakcí.
Abych to upřesnil:
měření máš vyřešené, ale v podstatě ti přímo ovlivňuje výsledek (sepnutí relé).
Já bych to vzal formou statusu. Použij proměnou stav a když bude měření vycházet na sepnutí dej mu honotu 1, jinak 0
Vyhodnocení – tady si teprve řekni zda ty statusy jsou v kombinaci vhodné pro pokračování sepnutí rele nebo ne. Navíc bych to řešil formou podmínky, že např, relé musí být sepnuté po min.3 cykly smyčky loop. Zave´d si proměnnou „pocitadlo“ a když je požadavek na sepnutí dej mu hodnotu např.“3″.
Když je požadavek na vypnutí sniž hodnotu o „-1“
Když je „pocitadlo = 0“ vypni rele jinak rele zapni.Mám správný směr myšlenek s tím co potřebuješ nebo jsem to špatně pochopil?
-
AutorPříspěvky