Gå til innhold

Den lille Arduino-tråden


Anbefalte innlegg

  • 4 uker senere...
Videoannonse
Annonse

..Sykkelen bare økte på. Helt hærlig. Tipper jeg var oppe i rundt 35km/t på slett vei og motoren hjalp meg litt hele tiden..

PS. du vet at dette nå er en el-moped, som krever registrering, ansvarsforsikring og er underlagt helt andre regler. Dersom du forårsaker en ulykke med denne "sykkelen" kan du få millionkrav rettet mot deg, og du kan havne i fengsel om du forårsaker en dødsulykke. Ikke det at det kommer til å skje deg, men det kan være lurt å nevne det..

Lenke til kommentar
  • 2 uker senere...

Det er vanlig å kjøre steppere med høyere spenning en merkespenning, bare pass på at strømmen begrenses.

okay :) fant ut etter mye googling at det går fint å kjøre 24v på nema 17 :) så bestilte 3 stykker nema 23 og en nema 17 idag .. samt en 24v strømforsyning :) 

 

ser nå at projektet mitt blir litt dyreren enn jeg hadde håpen så må se om jeg må drøye det litt til jeg får litt mere penger å bruke.. eventuelt kjøpe litt og litt også bare vente... (er ikke godt til å spare penger)

Lenke til kommentar

Spørsmål ang lesing av NMEA setninger(fra feks GPS). Kan jeg sende dette rett inn på Arduinoen eller må jeg gå via en MAX232 microchip?

Det avhenger av spenningsnivået ut fra GPS-dingsen,  og hvilken Arduino  du har. GPS-dingser varierer; noen har 5V spenningsnivå, andre 3.3V, og riktig gamle har "ordentlig" serie-port, dvs. +-12 V spenningsnivå. Arduino'er finnes stort sett i utgaver med enten 3.3 V eller 5V signalnivå inn / ut.

Lenke til kommentar

hvis jeg skal lage CNC maskin så trenger jeg jo et kort til å drive denne med! 
har  2 nema 23 til å kjøre i x, en nema 23 til å kjøre i y og en nema 17 til z.
 

kan jeg koble de to nema 23-ene i x aksen på samme stepper drive? eller burde jeg finne et kort som har 4 stepper drive å kjøre 2 stepper drive i slave istedenfor?

 

har funnet to kort som har 4 stepper drive meeen synes prisen var litt mye og finner ikke ut frakten på de.. (tenker på tinyG og CNC xPRO V2) kommer nok til å gå for tinyG hvis jeg må ha et av de..

har sett litt på dette faktisk :) http://www.ebay.com/itm/Arduino-CNC-kit-CNC-Shield-V3-0-uno-R3-4pcs-a4988-driver-GRBL-compatible-/252046431414?hash=item3aaf2354b6:g:kwoAAOSwHnFVtxXU

 

koster jo bare 170kr så er jo ikke så mye å tape.. kan vel bruke a til stepper nummer 2 på x aksen? men vet ikke om stepper driveren klarer å drive nema 23?

har jo dette også? https://www.inventables.com/technologies/gshieldmen det tror jeg at ikke går i lengden på 2 nema 23 på en stepper drive..

Endret av iam99pk
Lenke til kommentar

Jeg har begynt på et lite "Arduino" prosjekt nå i begynnelsen av juleferien. Jeg har en uisolert bod som jeg bruker som et verksted, og hvis jeg skal varme opp den i løpet av kort tid så må jeg bruke en vifteovn med en del effekt, og samtidig har jeg noen maskiner der som bruker en del effekt og sikringen er bare 15 ampere. Så jeg tenkte at jeg kanskje kunne lage litt hjemmeautamasjon der hvor jeg regulerer effekten til vifteovnen trinnløst med en PID regulator (istedenfor at den går på termostat slik som den orginalt gjør), og skur den og andre ting som kompressor, ol av og på fra mobilen via internet med SSR releer.

Så for reguleringen på ovnen tenkte jeg å bruke en TRIAC krets på hvert av varmeelementene som styres via en ESP8266 chip som er en IOT (internet of things) chip og en microkontroller i samme brikke og den kan programmeres via Arduino IDE'en. Også skal jeg bruke en Rasberry PI som en server for alle  ESP8266 som vil bli strødd rundt i boden, og en liten 7 tommer touchskjerm på Rasberry PI'en med GUI for å kunne stille på det jeg vil. Også etterhvert kan jeg vel også prøve å lage en app til android så jeg kan styre det via internet på mobilen.

Jeg kjøpte inn noen TRIAC'er og drivkretser fra mouser.com og koblet raskt sammen noe på et breadboard og slang sammen et raskt arduino program. Jeg brukte da en 9VAC forsyning da jeg tenkte at det var greit å begynne med en lav spenning tilfelle noe gikk galt, og for å kunne måle på det med et oscilloskop uten å ødelegge det med en "ground loop" eller for høy spenning inn på probene. Jeg tok dessverre ikke noe bilde av dette, men når jeg hadde kommet frem til noen fornuftige motstandsverdier med noen potensiometere så byttet jeg dem ut med noen faste resistorer og loddet det sammen på et "permaproto" brett.

Slik så det ut:

 

 

20151220_110729.jpg

 

20151220_110736.jpg

 

20151220_110818.jpg

Det store potmeteret her er for å regulere tidsforsinkelsen på triggerpulsen fra microkontrolleren

 

 

Ledningene inn er: gul og grønn er AC forsyning, og RL (varmeelement simulert med et potmeter), rød og svart er 5 VDC forsyning, og blå og hvit er signal ut og inn til microkontroller. Og det store potmeteret er for å stille pådraget inn på microkontrolleren.

Og det fungerte etter litt hodekløing hvor jeg til slutt fant ut at jeg hadde glemt å sette på en jumper som jeg hadde på breadboardet.

 

Her er noen bilder fra hvordan det så ut på oscilloskopet med forklaringer:

 

 

20151220_110829.jpg

Innsignal og utsignal ved ca 50% pådrag

 

20151220_110903.jpg

Samme bare lagt over hverandre

 

20151220_110919.jpg

Samme med nesten 100% pådrag

 

20151220_110936.jpg

Samme med veldig lite pådrag

 

20151220_111109.jpg

Signaler inn og ut fra microkontroller ved ca 50% pådrag. Inn øverst og triggerpuls ut nederst.

 

20151220_111126.jpg

Samme med nesten 100% pådrag

 

20151220_111144.jpg

Samme med nesten 0% pådrag

 

20151220_111358.jpg

En nærmere titt på pulsene. Pulsen fra H11AA1 kretsen som går inn på microkontrolleren øverst så bestemmes pulstiden og reis og falltidene med hvilke motstand du har inn på den, og dette var det beste jeg fikk stillt den inn på, mens utpulsen (triggerpulsen) fra microkontrolleren nederst setter jeg pulstiden i programmet og jeg har satt den til 0,3% av periodetiden til sinuskurven da dette var den korteste pulstiden som pålitelig trigget TRIAC'en.

 

20151220_111434.jpg

En enda nærmere titt. 44us som du ser varierte en del fra ca 20us til ca 50us, så kan du jo selv regne ut hva dette egentlig skal være ut fra 50 hz inngangssignal og 0,3% av denne periodetiden. Dette er selvsagt også avhengig av hvor lang tid microkontrolleren bruker på å lese gjennom programmet siden jeg ikke har brukt interupts.

 

 

 

 

 

Her er programmet (jeg vet ikke hvordan jeg legger ut kode på en bra måte på dette forumet):

 

float AnalogProsent = 0.000;
int ledPin = 13;
int PulsInPin = 7;
int AnalogInPin = 9;
bool PulsInVal = false;
bool PulsOutVal = false;

unsigned long previousMicros = 0;
unsigned long currentMicros = 0;
unsigned long PeriodTime = 0;
unsigned long OnDelayTime = 0;
unsigned long PulsTime = 0;
bool PulsOut;
bool PulsState;
bool PulsPreviusState;


void setup(){
analogReadResolution(16); //oppløsning = 2^16 = 65536
pinMode(ledPin, OUTPUT);
pinMode(PulsInPin, INPUT);

}
void loop() {

PulsInVal = digitalRead(PulsInPin);
AnalogProsent = AnalogVerdi(AnalogInPin);

//Math
currentMicros = micros();

PulsState = PulsInVal;


//Edge detection
//Positive edge
if (PulsState == true && PulsPreviusState == false){
PeriodTime = currentMicros - previousMicros;
OnDelayTime = (AnalogProsent / 100.000) * PeriodTime;
PulsTime = (0.3 / 100.000) * PeriodTime;
previousMicros = currentMicros;
PulsPreviusState = PulsState;
}
//Negative edge
if (PulsState == false && PulsPreviusState == true){
PulsPreviusState = PulsState;
}

//On delay: Set puls
if (currentMicros - previousMicros >= OnDelayTime && !PulsOut){
PulsOut = true;
}
//Puls time: Reset puls
if (currentMicros - previousMicros >= OnDelayTime + PulsTime && PulsOut){
PulsOut = false;
}


PulsOutVal = PulsOut;
digitalWrite(ledPin, PulsOutVal);
}



float AnalogVerdi(int analogPin){
int Verdi;
float RaaVerdi;
float ProsentVerdi;

Verdi = analogRead(analogPin);
RaaVerdi = Verdi;
ProsentVerdi = 100.000 / 65536.000 * RaaVerdi;

return ProsentVerdi;
}

 

 

Det er veldig grovt nå siden det er raskt slengt sammen, og jeg skal også lage triac funksjonen som en egen funksjon slik som analog lesingen (jeg gjorde det til å begynne med, men så tror jeg det ble noen feil med initialisering av variabel verdiene så jeg bare slang alt inn i hoved loopen for å få testet det).

Jeg har valgt å jobbe i prosentverdier i float format fordi dette blir enklere når jeg skal implementere dette med en PID regulator, og kunne presentere det på en skjærm på en rasberry pi og en mobil, ol.

Og jeg har brukt micro sekunder for å få best mulig oppløsning på reguleringen og for å få en kort triggerpuls. Jeg har ikke tatt hensyn til overflow / timing rollover av micros() timeren i dette programmet, så derfor vil det bli en eller to perioder hvert 70 minutt som ikke stemmer, men jeg tror ikke det vil ha noen betydning.

 

Og til slutt så har jeg også laget en fritzing av kretsen. Og her har jeg også laget et ordentlig kretskort med høyspennings og lavspennings side skillt (jeg skal selvsagt ikke koble opp dette mot 230V med permaproto kortet, det er bare for testing på lav spenning)

R1 og R2 må byttes til mye større verdier hvis det skal kobles til nettspenning.

2015_12_20_12_06_32.jpg

 

2015_12_20_12_07_03.jpg

 

2015_12_20_12_07_27.jpg

Hehe profesjonellt utseende routing er ikke lett. Ihvertfall ikke når man skal bruke kretskort med kun et kobber-lag...

Så dette ble rimelig amatørmessig utseende, med skrå linjer og uten noe "ground pour", men jeg klarte meg ihvertfall med bare en jumper da..

 

Grunnen til at H11AA1 IC'en er opp ned er for å få høyspenningssiden på begge IC'ene på samme side slik at man kan lage et isoleringsspor mellom høyspennings og lavspenningsside.

 

Etterhvert vil jeg kanskje også inkludere microkontolleren (ESP8266 ) og 5 VDC forsyningen (har noen "HLK-PM01" klosser som jeg vil bruke) på samme kretskort så jeg slipper å koble til noe andre ledninger enn strømmen.

Endret av flesvik
  • Liker 3
Lenke til kommentar
  • 1 år senere...

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...