Vojtěch Vosáhlo
Vytvořené odpovědi
-
AutorPříspěvky
-
Vojtěch VosáhloÚčastník
Takže pokud jsem to dobře pochopil tak chcete nějak opatřit situaci že se ve dveřích naskytne překážka a koncák se nespustí. V kódu toho asi moc neuděláme, jediné co mě napadá je počítat si čas za kterej by se měli koncáky sepnout a pokud se do té doby nespustí tak provést nějakou rutinu. Mohli by se dveře třeba znovu otevřít a pokusit se o zavření/ zahlásit error… Prakticky cokoliv. Lepší řešení by bylo asi přidělat na dvířka (na spodní část) lištičku právě s nějakým spínačem tzn. když by dvířka do něčeho po cestě narazili, spínač by se epl a dal vám vědět.
Držim palce
Vojtěch VosáhloÚčastníkPředpokládal bych že si s trimry můžete s trimry „pohrát“ a zjistit to. Pokud jste dostal nějaký roztok na kalibraci, můžete to udělat podle něj. Lepší možnst by asi byla zjistit označení IC a hodit ho sem. Nejspíš se vše bude dát najít v datasheetu.
Vojtěch VosáhloÚčastníkTak supr, pak napiš jestli to pomohlo, já myslel že je rušení z relé…
Dík, vím co ferit je ale nebyl jsem si jistej jak je to v češtině, znám to hlavně v angličtině ?Vojtěch VosáhloÚčastníkProkoukl jsem ňejaká ta fóra a zkusil bych přinejmenším několik věcí. Hlavně asi ten optoizolátor jak psali ostatní. Mimochodem pokud je indukce z cívky na relé, mohlo by být dobré řešení SSR relé. To by se mělo indukce zbavit nadobro. Jinak kondík a feritové jádro (snad je to tak česky) by mohli taky pomoct.
Schéma vypadá jako úplnej standard.
Edit: To rušení by se mohlo k procesoru dostávat i z cívky relé. Doporučil bych odizolovat to relé a pak se uvidí.Vojtěch VosáhloÚčastníkPřesně tak. Chtělo by to zjistit co to resetuje a případně to izolovat od AC.
Vojtěch VosáhloÚčastníkZajímavý je že je indukce tak velká, a že něco takového může zaseknout arduino. Předpokládám že zdroj toho zaseknutí bude napájení arduina ze sítě. Nemohl by pomoci třeba DC/DC izolovaný měnič před arduinem nebo zenerova dioda jako svodič těchto špiček na zem? Abych řekl pravdu tak o indukci moc nevím a ty rady co jsem napsal neřeší praskání v reproduktorech a další problémy. Mohlo by to ale vyřešit resety arduina.
Držím palce ?Vojtěch VosáhloÚčastníkNo když už máte motor tak možná lepší jen dokoupit enkoder ?
Vojtěch VosáhloÚčastníkJak jsem psal výše tak kolečko si můžete nechat vytisknout na průhlednou fólii (budou to dělat v každém větším papírnictví). Obrázek můžete taky jednoduše škálovat takže s velikostí osičky nebude problém. Vyhledání „rotary encoder pattern“ nebo „wheel“ vám vyhodí spoustu možností. V tomhle případě by nebyly koncáky potřeba když se ten program dobře napíše. ?
Hodně štěstíVojtěch VosáhloÚčastníkAhoj, na relátku prakticky nezáleží, cokoliv co bude spínané 230V je ok. Já bych ale tohle s relátkem neřešil… Lepší možnost co mě napadá je optoizolátor. Asi hlavně proto že relé je přece jen mechanické a asi má větší šanci se rozbít. To by samozřejmě neplatilo při koupi SSR relé. Tady je jeden z příkladů obvodu s optoizolátorem: http://www.electroschematics.com/11922/mains-voltage-sensor/
Pokud by si stejně chtěl použít relé, doporučil bych třeba toto: https://www.gme.cz/rele-s-ac-civkou-230v-finder-55-12-8-230-0000Držím palce 😉
Edit: Levnější verze třeba toto https://www.gme.cz/rele-s-ac-civkou-230v-finder-40-61-8-230-0000
Vojtěch VosáhloÚčastníkJá bych použil nějaké optické hradlo a takové to kolečko kde se střídá černá a průhledná. Vzor se dá sehnat na internetu a na laserovce vytisknout na průhlednou fólii. Hradlo můžete koupit a nebo i s kolečkem vytáhnout ze staré tiskárny. Asi by to mohlo fungovat dobře, nemusíte natahovat kablíky pro koncáky a můžete použít nějaký obyčejný motor. Pak se to dá ovládat prakticky jak servo.
Držim palceVojtěch VosáhloÚčastníkZ mojeho pohledu tomu ten panel spíš přidává na ceně než cokoliv jiného 😉 myslím že když se to slušně navrhne tak by to na jedno nabití mohlo střední zahradu posekat a pak si to pro šťávu kdyžtak zajede jak říkáte. Můžu se zeptat jak budete sekačce vytyčovat ůzemí na kterém jezdit?
Držím palce ať uspějete.
VojtaVojtěch VosáhloÚčastníkDobrý den,
ta deska je asi pouze jejich výrobek takže bych předpokládal že se dá koupit pouze u nich…
Kdyby jste nechtěl kupovat přímo jejich shield, dalo by se využít pár modulů k arduinu a cena by byla nejspíše mnohem nižší. Nebo si to postavit sám. O lepším návodu bohužel nevím ale i s tímhle si můžete vyhrát.
Držím palceVojtěch VosáhloÚčastníkTak ať se zadaří 😉
Vojtěch VosáhloÚčastníkDobře. Pokud jsem to správně pochopil tak ten audio modul zahraje hudbu když dáte jeden z A pinů na zem (podle čísel pinů vybírá skladbu). Máte to ozkoušené? Pokud je to tak jak píšu, měl by fungovat kód dole. D0 toho senzoru jde na pin 2 arduina a nejspíš si budete muset pohrát s poťákem na senzoru aby jste nastavil detekční vzdálenost.
Držím palce.const int d0 = 2; // Pokud chcete používat přerušení musí to být pin 2 nebo 3 (na Unu, nanu a mini) const int prehravaciPin = X; //Pin připojený na spouštění toho songu, pokud správně chápu tak A1 - A10 na tom modulu void setup() { pinMode(d0, INPUT); pinMode(prehravaciPin, OUTPUT); digitalWrite(prehravaciPin, HIGH); attachInterrupt(0, detekce, FALLING); } void loop() { } void detekce(){ digitalWrite(prehravaciPin, LOW); delay(100); digitalWrite(prehravaciPin, HIGH); }
Vojtěch VosáhloÚčastníkDobrý den,
nejlepší by bylo nějaké info, jestli ho sem můžete napsat. Důležitá je informace jak funguje váš senzor. Je snímač fotorezistor / fototranzistor nebo ještě něco jiného? A info o mp3 modulu by se taky hodilo. Pak to dáme dohromady.Vojtěch VosáhloÚčastníkDíky,
tam jsem začal a poměrně úspěšně. Jde o to že například k objektu SerialUSB jsem nenašel žádnou oficiální dokumentaci, ale spíše nápomocné stránky viz.
A k dalším funkcím které by mělo arduino zvládnout a jsou uvedené na ofiko stránkách, cituji…you can use the M0 as a client USB peripheral (acting as a mouse or a keyboard connected to the computer) or as an USB host device…
sice knihovny existují, ale jsou podporovány v arduinu IDE od arduino.org
Asi jsem se spíš zamotal do situace, a taky úplně nechápu 32-bit vývojářství. Je to docela nepřehledný, když se obě „arduina“ takhle roždělili 😀
Vojtěch VosáhloÚčastníkJá jsem dělal s tip120 a většinou vše zapájím na ňáký univerzální pcb. Testuju to normálně na breadboardu na malejch proudech a pak to postavim. Myslím že třeba HW kitchen něco postaveného už má, a nebo z číny…
Vojtěch VosáhloÚčastníkJe pravda že je to taková nehezky začarovaná smyčka ale neleze mi do hlavy jak jsem to teda dělal já ? arduino ani jiný programátor jsem rozhodně nepoužil…
Vojtěch VosáhloÚčastníkNo je pravda že to je asi kravina, to usb je přes firmware… Pak už asi nezbývá nic jiného než druhý programátor, lidi to dělají i arduinem tak to můžete zkusit.
Vojtěch VosáhloÚčastníkOk, pokud tyhle dva piny propojíte. Dejte tam něco co se pak dá jednoduše odstranit. S propojenými piny to zkuste připojit do pc, zapnout avrdudess, dát programmer jako usbasp a u chipu detect. I když to v žádném návodu není popsáno, mělo by to najít tu megu 8. Opět to zkuste a budem pokračovat.
Vojtěch VosáhloÚčastníkPředpokládal bych že ten náš ztracený jumper jsou ty 2 neosazené piny na spodní straně desky. Zkuste za pomoci pinoutu toho procesoru co je osazený přeměřit ty dva piny. Jeden by měl jít na reset procesoru a druhý na PB2. Můžete napsat progress 😉
Vojtěch VosáhloÚčastníkNějaký odkaz na to co jste koupil, nebo obrázek? Já neznám žádné nové USBasp a vždy jsem firmware musel updatovat. Ale jde aktualizovat přes usb, není potřeba žádný programátor.
Vojtěch VosáhloÚčastníkJo, to je dost možné. Nenašel jsem mocinformací takže jsem spíš tipoval…
Vojtěch VosáhloÚčastníkDobrý den,
moc dokumentace u toho není ale zkuste odstranit ten jumper a pak to napájet externě.Vojtěch VosáhloÚčastníkJak jsem již psal, tahle chyba je normální, pojistka se zapíše jen se nepřečte zpět ve správném tvaru… USBasp vám asi na ser. komunikaci stejně nepomůže 😉
Vojtěch VosáhloÚčastníkNeni vůbec za co. Je hezký že se tu alespoň jednou za měsíc někdo objeví a já můžu pomoct. Je to jako takovej vedlejší projekt ?
Hodně štěstí do budoucnaVojtěch VosáhloÚčastníkMyslim že by měla, můžete to kdykoliv vyměnit když to odejde a dát tam něco lepšího…
Až na to bude zas síla tak to můžete vylepšit.Vojtěch VosáhloÚčastníktak připojte oba děliče na A0 a A1 a nahrajte tento kód. Musíte si ještě dovyplnit nějaké definice. Vstup z levého blinkru jsem dal na A0, z pravého na A1.
#include <Adafruit_NeoPixel.h> ////// NASTAVENI LEVEHO PASKU #define PIN_L_PASEK pin l pasku #define NUM_LEDS_L_PASEK pocet led l pasku Adafruit_NeoPixel l_pasek = Adafruit_NeoPixel(NUM_LEDS_L, PIN_L_PASEK, NEO_GRB + NEO_KHZ800); ////// NASTAVENI PRAVEHO PASKU #define PIN_P_PASEK pin p pasku #define NUM_LEDS_P_PASEK pocet led p pasku Adafruit_NeoPixel p_pasek = Adafruit_NeoPixel(NUM_LEDS_P, PIN_P_PASEK, NEO_GRB + NEO_KHZ800); ////////////POCET LED JEDNOHO Z PASKU #define NUM_LEDS NUM_LEDS_L_PASEK ////// NASTAVENI VSTUPNICH PINU #define L_BLINKR_PIN A0 #define P_BLINKR_PIN A1 void setup() { /// Nastaveni pinu na ktere pujdou vstupy/ blinkry pinMode(L_BLINKR_PIN, INPUT); pinMode(R_BLINKR_PIN, INPUT); ///Nastaveni pasku l_pasek.begin(); l_pasek.show(); p_pasek.begin(); p_pasek.show(); } void loop() { if(analogRead(P_BLINKR_PIN) > 500 && analogRead(L_BLINKR_PIN) < 500) { colorWipe(0xff,0xa2,0x00, 40, 1); colorWipe(0x00,0x00,0x00, 5, 1); } if(analogRead(L_BLINKR_PIN) > 500 && analogRead(P_BLINKR_PIN) < 500) { colorWipe(0xff,0xa2,0x00, 40, 0); colorWipe(0x00,0x00,0x00, 5, 0); } if(analogRead(L_BLINKR_PIN) > 500 && analogRead(P_BLINKR_PIN) > 500) { colorWipe(0xff,0xa2,0x00, 40, 2); colorWipe(0x00,0x00,0x00, 5, 2); } } void colorWipe(byte red, byte green, byte blue, int SpeedDelay, int pasek) { if(pasek == 0){ for(uint16_t i=0; i<NUM_LEDS_L_PASEK; i++) { setPixelL_PASEK(i, red, green, blue); showL_PASEK(); delay(SpeedDelay); } } if(pasek == 1){ for(uint16_t i=0; i<NUM_LEDS_P_PASEK; i++) { setPixelP_PASEK(i, red, green, blue); showP_PASEK(); delay(SpeedDelay); } } 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); } } } void showL_PASEK() { #ifdef ADAFRUIT_NEOPIXEL_H // NeoPixel l_pasek.show(); #endif #ifndef ADAFRUIT_NEOPIXEL_H // FastLED FastLED.show(); #endif } void setPixel_L_PASEK(int Pixel, byte red, byte green, byte blue) { #ifdef ADAFRUIT_NEOPIXEL_H // NeoPixel l_pasek.setPixelColor(Pixel, l_pasek.Color(red, green, blue)); #endif #ifndef ADAFRUIT_NEOPIXEL_H // FastLED leds[Pixel].r = red; leds[Pixel].g = green; leds[Pixel].b = blue; #endif } void showP_PASEK() { #ifdef ADAFRUIT_NEOPIXEL_H // NeoPixel p_pasek.show(); #endif #ifndef ADAFRUIT_NEOPIXEL_H // FastLED p_pasek.show(); #endif } void setPixel_P_PASEK(int Pixel, byte red, byte green, byte blue) { #ifdef ADAFRUIT_NEOPIXEL_H // NeoPixel p_pasek.setPixelColor(Pixel, p_pasek.Color(red, green, blue)); #endif #ifndef ADAFRUIT_NEOPIXEL_H // FastLED leds[Pixel].r = red; leds[Pixel].g = green; leds[Pixel].b = blue; #endif }
Vojtěch VosáhloÚčastníkTo je možná nejlepší způsob, třeba se něco dotýkalo země a nešlo to…
Vojtěch VosáhloÚčastníkZemě můžete odpojit, stačí že je to napájené z motorky…
-
AutorPříspěvky