Vojtěch Vosáhlo
Vytvořené odpovědi
-
AutorPříspěvky
-
Vojtěch VosáhloÚčastník
Je vidět že to měří, pokud jsou to čísla kolem 700, přičemž max je 1024. To reprezentuje 5v takže je tam kolem 3.5v +- To je asi pořád ještě málo. Chtělo by to rezistory v poměru 10:14. Můžete použít tu kalkulačku a zkusit zjistit co doma máte a co by fungovalo.Teď to měří 1023, jakto?
Vojtěch VosáhloÚčastníkA ty data jsou 0000 když je blinkr zapnutý? Dejte do kódu println místo print, bude to přehlednější…
Vojtěch VosáhloÚčastníkHmmm, a to druhý měření? Mezi děličem a zemí arduina? Když to nepůjde tak to holt bude chtít obrázky nebo video ?
Vojtěch VosáhloÚčastníkZase jsem něco doplnil ? tak to taky můžete zkusit
Vojtěch VosáhloÚčastníkTak můžete zkusit ten kód co jsem tu dával. Napojte jeden z děličů na A0 a uvidíme. Když to spínáte 5v arduina tak to teda běží jo? Zkuste možná předtim ještě měřit mezi světlem (jakymkoliv) a zemí arduina, ktere je napojene namotorku.
Vojtěch VosáhloÚčastníkA ještě je samozřejmě důležite který z ezistorů jde na zem a který na + ale to kste měl správně podle toho co jste naměřil. Pozor. Pokud to dáte obráceně, na arduino pujde 8v!
Vojtěch VosáhloÚčastníkMůžeze ale je to hodně divný… Pokud nepomůžou ty rezistory, zkuste poslat nějaké obrázky.
Vojtěch VosáhloÚčastníkJak jsem napsal nahoře…
Jedna další věc, která mi netrkla, ale musí tam být. Spojte ZEM arduina se ZEMÍ jednoho z těch blinkrů, pak by to mělo jít.
Pozor aby to byly opravdu země, ať si neodpálíte arduino. A vy arduino nenapájíte z motorky?
Přestřelujem se tu komentářema a já jsem vždy pozadu 😀
Vojtěch VosáhloÚčastníkPokud to sepne 3.3v z arduina je problém jinde
Nemáte při ruce přesnější rozdíl? nějaké dva které by se opravdu lišily o polovinu nebo o trochu míň? Jako třeba 100k a 140-160k? Těch +20k na tě 220 už z toho dělá trochu moc malý napětí.Jedna další věc, která mi netrkla, spojte ZEM arduina se ZEMÍ jednoho z těch blinkrů, pak by to mělo jít.
Pozor aby to byly opravdu země, ať si neodpálíte arduino. A vy arduino nenapájíte z motorky?
Vojtěch VosáhloÚčastníkOprava, to předtím ani nemusíte zkoušet!
Teď jsem ještě koukal a 3v jsou přesně někde na té arduino hranici LOW a HIGH.
Co jste použil za rezistory na dělič a jaké je napětí na světle, ně na pinu arduina?Vojtěch VosáhloÚčastníkNemá cenu zkoušet 😀
2.5 nebo 3 na pinu arduina? Už za tím děličem? Na světla by mělo jít 12v ne? Zkuste to přeměřit třeba na brzdovce, jestli je tam opravdu 12v. Pak zkontrolujte polaritu, na jaký části blinkru je + a na jaký – Pokud nic moc nezjistíte, nahrajte přiložený program do arduina, přendejte jeden z děličů na pin arduina A0 a otevřete ser. monitor (Ctrl + Shift + M) na 9600 baud. Pojedou vám tam hodnoty pinu A0. Pusťte blinkr a pozorujte hodnoty, kdyžtak sem pak hoďte co vám vyjíždí když svítí blinkr.const int analogInPin = A0; int sensorValue = 0; void setup() { Serial.begin(9600); } void loop() { sensorValue = analogRead(analogInPin); Serial.print(sensorValue); delay(100); }
Vojtěch VosáhloÚčastníkZas takový oříšek to není 😀
Nahoru do kódu, k těm všem defines vložíte tohle:
////////////POCET LED JEDNOHO Z PASKU #define NUM_LEDS NUM_LEDS_L_PASEK
Musí to být pod nastavením levého pásku, nebo níže…
Hlavní smyčka void loop bude vypadat takhle:
void loop() { if(digitalRead(P_BLINKR_PIN) && !digitalRead(L_BLINKR_PIN)) { colorWipe(0xff,0xa2,0x00, 40, 1); colorWipe(0x00,0x00,0x00, 5, 1); } if(digitalRead(L_BLINKR_PIN) && !digitalRead(P_BLINKR_PIN)) { colorWipe(0xff,0xa2,0x00, 40, 0); colorWipe(0x00,0x00,0x00, 5, 0); } if(digitalRead(L_BLINKR_PIN) && digitalRead(P_BLINKR_PIN)) { colorWipe(0xff,0xa2,0x00, 40, 2); colorWipe(0x00,0x00,0x00, 5, 2); } }
A toto:
if(pasek == 2){ for(uint16_t i=0; i<NUM_LEDS; i++) { setPixelL_PASEK(i, red, green, blue); setPixelP_PASEK(i, red, green, blue); showL_PASEK(); showP_PASEK(); delay(SpeedDelay); } }
přidáte do funkce ColorWipe pod obě if co už tam jsou.
Tohle by mělo vše vyřešit.Pokud se chcete kouknout kde má co být, celý kód by měl vypadat asi takto http://pastebin.com/cqmXj9J8
Vojtěch VosáhloÚčastníkJo, to je důležitý a já to nezmínil… Když jse to měl bez odporu, arduino dostávalo 2 stavy, high a floating, to je ale špatně, my chceme aby dostávalo high a low a to se vyřeší právě tím pulldown rezistorem na zem. Dalo by se to vyřešit i v programu, dá se udělat to stejné v procesoru, ale většinou se to tak nedělá. Kdyby něco ještě zlobilo, tak je možný že na pinu arduina je malé napětí. Teď by tam měly být asi 4 volty když je na blinkru napětí pokud se nepletu. Kdyby jste dělal s menšími napětímy, musí se brát v potaz že arduino má hranici napětí někde kolem 1,6 v, aspoň myslím. Míň než 1.6 je 0 a nad 1.6 je 1.
Hodně štěstí s dalšími projekty.Vojtěch VosáhloÚčastníkJestli chápu správně otázku, tak na vstup arduina můžete pustit až 5v. Ale nejsem si jistej že je to to na co jste se ptal ?
Vojtěch VosáhloÚčastníkSuper, teď to můžete posouvat dál 😀 Animace pro brzdový světlo, různý animave při zrychlování motorky, no už to vidim 😉 za chvíli z toho máte disko motorku.
-
AutorPříspěvky