Friss vagyok az Arduino világban, és inkább a hardware részekkel vagyok jóban, a programozással kevésbé.
Arról volna szó, hogy kellene mérni, majd megjeleníteni, de nem akárhogy. Vákuum is van, meg nyomás is, -2 +2 Bar terjedelemben, de most épp még csak a nyomásos résszel foglalkoznék az alábbiak szerint: Az egyszerűség kedvéért vegyünk egy 16x2 LCD-t (ez a későbbiekben szintén változna).
A feladat az lenne, hogy mikor feszkót kap a panel, dobjon fel egy üdvözlő szöveget (tetszőleges), majd kezdjen el mérni analóg 5 Voltos terjedelemben (0V=0Bar, 5V=2Bar, de ez megint részletkérdés). Kezdjük tehát azzal, hogy tápfeszkó, nulla nyomás.
Egy indikátor és egy kéttizedes pontosságú számkijelzés adná az infót (például az alsó sor lehet végig indikátor, a felső bal oldalon pl: Bar xx.x, a jobb oldalon Boost x.xx, tehát lenne rajta egy max nyomás kijelzés, amit ki kellene tartani 5 másodpercig, ha ezt meghaladja, automatikusan emelkedne. Tud ebben valaki segíteni? Találtam hasonlót, de nagyon nem úgy működik, ahogy illene... Köszönet! :)
Hát egy fejlesztőnek egy ilyet összedobni szerintem nem olyan rettenetesen sok idő. De megelégszek én valaki olyannal is aki nem fejlesztő, csak hobbi szinten foglalkozik vele. Na meg csak akad 1-2 csóró egyetemista is aki néhány délután alatt össze tudná dobni.
Annó 10ezret fizettem a másikért. A srác csinálta a kapcsolási rajzot, a programot és ő adta a mikrovezérlőt. Amikor én megcsináltam az egészet akkor nem igazán működött, ő megnézte aztán kiderült hogy egy ellenállás lemaradt a kapcsolási rajzról. Ez pótolva lett. Aztán eljött (30km kb) és be lett kalibrálva. Na most a kalibrálást valamint a program feltöltését arduinonál én is meg tudom csinálni. Szóval akár személyes találkozó nélkül is megoldható a dolog, ami azért egyszerűsíti a dolgokat véleményem szerint. Ettől függetlenül, ha vállalja hogy normálisan megcsináljuk (tehát ha használat közben felmerül valami probléma akkor segít a kijavításában) akkor én ezért is kifizetem ezt az összeget. Csak akkor legyen is jó az egész! És én úgy gondolom hogy ez azért nem olyan kevés pénz érte.
Abszolút kezdő vagyok az arduino témában, bár a mostani projektben már módosítottam egy dolgot, de egynél viszont elakadtam. Egy hozzáértőnek szerintem "1-2" katt/sor és máris működne, amit szeretnék.
Ha bárkit érdekelne, hogy segítsen, és megadná a telefonszámát, akkor én nagyon szívesen visszahívnám.
A lényeg, hogy szeretnék egy hasonló megvalósítást úgy, hogy szeretnék egy plusz gombot, amit ha megnyomok, akkor az általam meghatározott értéket kijelezné + a (led) kimeneten megjelenne az a PWM érték.
Pl 1 vagy 2 másodpercre, vagy amit később meghatározok. Már annyit sikerült megoldanom, hogy a gombot és az értéket beírtam, viszont az időtartamot nem sikerült belőni, és ebben kérném bárki segítségét.
A másik nagy gondom, hogy viszonylag sürgős lenne.
Mivel lenne jobb egy fejlesztőnek ezt csinálni, mint távmunkában egy mondjuk Holland cégnek fejleszteni? Te milyen mérnökóradíjra gondoltál? Hány példányban szeretnéd a végterméket előállítani?
Tudod, okos reklámok a böngészési előzmények alapján dobja őket a rendszer :D Mondjuk melóhelyen nekem is ilyeneket dobott, itthon meg nem :D Na de viccet félretéve, a képfeltöltés régen jó volt. De ma már egy rakás sz.r... Szóval ha kell inkább mást fogok használni.
Na de hagyjuk a képeket. Inkább foglalkozzunk a kérdésemmel. Fizetnék is érte ha valaki mond egy normális árat és meg is csinálja a programot, csak lenne már velemi előrelépés... Az előző vagy 3 éve készült és azóta húzom ezt. A fő gond hogy én ragaszkodnék az arduinohoz, de nem ismerek olyat aki viszont jól értene a programozásához...
Elég rég tervezek már egy elektronikus műszeregységet motorra. A fő probléma hogy a mikrovezérlőkhöz nem igazán értek. De egy program és kapcsolási rajz alapján nem gond megcsinálni. Ezért keresnék valakit aki ezt a részét meg tudná csinálni.
Szóval a tervek: Az alap egy Arduino nano vagy mini. Hogy melyik azt még nem döntöttem el. De ez talán annyira nem is lényeges pont. A műszeregységen egy Nokia 5110-es kijelző lenne, ennek a tetején jelenítené meg a sebességet, valamint alatta 1 vagy 2 sorban és akár 2 oszlopban a hőmérséklet a fordulat és a kilométer adatok(ezeket nyomógombokkal lehetne léptetni). A sebességhez optikai jeladóval venné a jelet a kis lánckeréktől, a hőmérők pedig 2 vezetékes PT100-asok(2 vagy 3db. Egy a levegő, egy a motorhő és egy az olajhőnek). A fordulatot még nem tudom. Az indukciós jeladós CDI gyújtás, ott a jeladóról le lehet venni a jelet. De még nem vagyok biztos abban hogy kell fordulatszámmérés. Az elektronika folyamatosan kaphat áramot. Viszont ha a gyújtáskapcsolóval kapcsolt körön nem kap jelet akkor alvó módba kellene kapcsolnia.(kijelzőn csak az össz kilométer kell hogy látható legyen olyankor. Nem hátrány ha ezt az alvó módot késeltetve kapcsolja be) Valamint egy LED a kijelző mellett ami világítani kezd ha motor vagy az olajhő megadott érték fölé megy.
Úgy nagyjából ennyi. Ami viszonyt még bonyolít a dolgon: Az össz megtett kilométert valahogy el kell tárolnia akkor is ha egyáltalán nem kap áramot(ha télen kiszedem az aksit ne nullázódjon le az egész). A nullázható kilométer persze nem számít ha elvész ilyen esetben. A kerékméret és az áttétel változhat, valamint be is kell kalibrálni, szóval úgy lenne jó ha a programban egy értéket átírva ez megoldható lenne. Én 2 nyomógombra gondoltam. Ezekkel lehetne léptetni a kijelzőn az adatokat valamint (mondjuk hosszan nyomva őket) nullázni a nullázható kilométer állást(persze ezt csak akkor ha a gyújtás is rá van adva. Tehát alvó módban nem. ) A hőmérők értékeit is jó lenne kalibrálhatóvá tenni(némelyiknél sok vezeték, és sok csatlakozó lenne). Valamint az olaj és a motorhő riasztási értékét(ahol a LED világítani kezd) is könnyen átírhatóra kellene.
Aztán, hogy tovább bonyolítsam a dolgokat(bár nem tudom hogy ez mennyit bonyolít): A zavarszűrés miatt az optikai jeladó, a hőmérők jeleit(már ha analóg jelet lehet egyáltalán), a fordulatszám jeladó jelét, és talán a kapcsolókat optikai kapukon keresztül kellene bevinni a vezérlőig.
Még valami, az optikai kapuk azért fontosak mert volt már egy ilyen projektem. Bár az nem arduino alapú és jópár éve készítette egy ismerősöm, de amint be lett indítva a motor megzavarodott az egész. Végül megdöglött a mikrovezérlő is... Bár azóta már jóval modernebb a motor elektromos rendszere. De biztosra akarok menni. Nehogy azon a pár méter vezetéken összeszedjen valamit.
Úgy egyenlőre ennyi jut eszembe. Nem tudom hogy mennyire megvalósítható így ahogy elgondoltam és azt sem hogy mennyire bonyolult(bár biztosan nem egyszerű :D ) De ötleteket és tanácsokat szívesen veszek!
A mikrokontrolleren van egy kicsike program, úgy hívják bootloader. Minden intdításkor ez indul el. Ha ilyenkor kap egy új programot a soros porton, akkor azt felprogramozza, ha nem kap újat, akkor elindítja az előzőt. Amikor új volt az Arduinod, akkor csak a bootloader volt rajta, így bármikor tudtál rá új programot tölteni. Most, hogy már fut rajta egy program, resetelni kell, hogy újra a bootloader indulojn el.
Köszönöm szépen!Próbáltam egy párszor ,de nem jött be azután még utána néztem lényeg,hogy akkor kell nyomni a resetet amikor kiírja a feltöltendő fájl méretét így már jó lett!Csak az az érdekes,hogy az első feltöltés enélkül is sikerült mind két minire ,de ezek szerint a további feltöltések csak így mennek.
Sziasztok !Nagyon kezdó vagyok az arduino témába.A problémám a követező arduino miniprora feltöltöttem egy programot egy másik köztes arduinoval (Tx-tx,Rx-rx,a köztes arduino resetje testen) a feltöltés sikerült csak azután kiderült,hogy módosítani kell a programon ezt meg is tettem ,a rajta lévő soft fut,de újabb softot nem tudok rá az előző módszerrel tenni ,még a kis példákat se lehet rá tenni.Mit tanácsoltok?
A kód elvileg helyes, gyakorlatilag inkább egy rotary encoder könyvtárat keresnék, ami működik rendesen. Plusz enkódert illik inkább megszakításból kezelni, nem pedig ezzel a módszerrel. Google arduino rotary encoder with interrupt.
Nos, iltt megtalálod a kiválasztott motor működését. Van ugye 1 közös vezeték, ez plusz 5 voltot kap, és 4 darab a 4 tekercshez.
Ha egyetlen tekercset táplálsz be (küldesz ki rá GND-t, testet a végfok IC-n keresztül, akkor a toro mágnese "odaforog" és beáll a tekecs irányába (több póluspárja van, de ez mot mindegy).
Ha most a következő tekercs re IS ráteszed a testet, akkor beáll a kettő közé. Most leveszed az elsőről a testet, továbblép fél osztást.... stb stb.
Vagyis tulajdonképpen 4 bit 8 féle kombinációját küldöd ki rá. Ez annyit jelent, hogy valamelyik portra 4 bitet erre használsz, és egymás után írod ki a kombinációkat. Ha ezt gyorsabban teszed, akkor gyorsabban forog. ha túl gyorsan, akkor "leszakad", nme tudja követni.
Viszontha eegáns megoldást akarsz, a végállásokra kapcsolókat teszel.
Amúgy ha felültközik, nem lesz baja, már ha a meghajtott ajtó zsanérja kibírja a motor + hajtómű nyomatékát. Csak zümmögni fog.,
Azt találtam ki, hogy ezzel a motorral oldanám meg a leendő lézer gravírozóm burkalat ajtajának a nyitását. Az lenne a cél, hogy az arduino (UNO vagy nano) a 2 végpont közelében lassabban mozduljon. Egyfajta finom mozgást lehetne létrehozni. Be kellene azt is állítani hogy mennyi idejig működjön a motor (vagy hogy hány lépést tegyen meg?) így elkerülendő a túlnyitás.
ű
Hogy kellene ezt megvalósítani? Hogy kezdjek hozzá? (Sose volt még dolgom arduinoval, szóval nagyon-nagyon kezdő vagyok) Tudnátok segíteni?
Most ismerkedem az Arduinokkal és már meg is akadtam. Van egy Mega 2560-as amivel egy inkrementális enkódert szeretnék számoltatni, de sajnos olyan mintha lassú lenne a jelfeldolgozás.Minél gyorsabban forgatom az encodert, annál kevesebb lépést számol 1 körre. Az enkóder piros +5, fekete gnd, a két jel kábel meg a 20,21 es lábon egy-egy 10k ellenállással a pozitívra húzva. Nagyon megköszönném, ha rávilágítanátok, hol a gond. Itt a kód, amivel próbálkozom:
int a=20; int b=21; int szamlalo; int state; int laststate;
void setup() { int laststate=digitalRead(a); Serial.begin(9600);
}
void loop() { // put your main code here, to run repeatedly: int state=digitalRead(a); if (state!=laststate) { if (digitalRead(b)!=state) { szamlalo++; } else { szamlalo--; } laststate=state; kiir(); } }