Gå til innhold

SkydiveWings

Medlemmer
  • Innlegg

    49
  • Ble med

  • Besøkte siden sist

Innlegg skrevet av SkydiveWings

  1. Er målet å omforme 0-230V til 0-5V og måle dette på gamepadporten? Om dette er målet må du fjerne regulatoren, eller får du bare ut 5V heile tida, lag heller ein spenningsdelar etter kondensatoren der den øverste motstanden er 6,8 ganger større enn den nederste om du ser for deg ein klassisk spenningsdelar. Nå er impedansen til gamepadporten ukjent, samt eg går ut frå at spenninga ikkje går over 230, og at det er ein perfekt 230V - 24V transformator. For å sleppe unna impedanseproblem i gamerporten kan du kople ein operasjonsforsterker som spenningsfølger.

  2. Bruk preprosesseringsdirektivet #define for å definere konstanter. Og sett opp en timer med interrups på et passende intervall for å regne ut rpm og skrive det ut på USARTen. ;)

     

    I følge referanseverket til Arduino er const å anbefale over #define, og meiner du at ein timer skal polle inputen, og ikkje flanketrigging slik eg har satt opp? Om du skal rekne ut RPM må du vel til med flyttalsutrekningar, og sidan det er ganske tidkrevande på ein mikrokontroller ville eg heller gjort dette i programmvaren i PCen.

  3. Takk for koden:)

     

    Dersom denne fungerer så har eg jo egentlig koden på arduino kortet.

    Da trenger eg ein måte å få sendt koden til USB porten for så å lese den av i et programm å få verdiene som tabellverdier eller lignende.

    Hvilket programmeringspråk anbefaler du til dette? or hvor kan eg finne info om slik kommunikasjon med seriel porten?

     

    Alle programmeringsspråk som kan kommunisere med ein serieport vil klare dette. Koden som eg laga skriv ut tida på eit enkelt format til ein virtuell serieport på ei datamaskin. Du kan f.eks bruke HyperTerminal eller PuTTY for å teste at det fungerer, så kan du lage deg eit programm i valfritt språk, gjerne med moglegheit for GUI, slik at du kan få fancy grafar og slikt. Formatet informasjonen kjem ut i er ("dT=xxxxxx" & CR & LF) der xxxxxx er antall mikrosekund siden sist lyset vart blokkert. Baudraten er 115200 bit/s.

     

    Koden kan sikkert optimaliserast meir, samt at noko filtrering hadde sikkert vore lurt, men det kan fiksast i programmet som skal tolke desse verdiane.

     

    Når det gjeld programmeringspråk så har eg ganske liten erfaring med det, men om du ikkje kan noko frå før av må du nesten bare velga noko som er lett å setje seg inn i, f.eks. Visual Basic eller Python.

     

    Edit:

    Ser at koden eg skreiv blei litt feil, eg endra litt på interruptargumentet og gløymte å endre på resten :thumbdown:

    const int pinGaffel = 2;
    const int pinIndLED = 4;
    unsigned long mikro1, mikro2 = 2147483647; 
    long delta_t;
    
    int status = LOW;
    bool nyVerdi = false;
    
    void setup()
    {
     pinMode(pinGaffel, INPUT);
     pinMode(pinIndLED, OUTPUT);
     Serial.begin(115200);
     attachInterrupt(0, gaffelEndring, RISING);
    }
    
    void loop()
    {
     if (nyVerdi == true)
     {
       delta_t = mikro1 - mikro2; //delta_t er i mikrosekund
       mikro2 = mikro1;  
       if (delta_t > 0) //Sjekker at micros() ikkje har hatt overflyt (skjer ca kvart 70. minutt)
       {
         Serial.print("dT=");
         Serial.println(delta_t); //Skriver ut delta_t
       }
    
     digitalWrite(pinIndLED, status);
    
     nyVerdi = false;
     }
    }
    
    void gaffelEndring()
    {
     mikro1 = micros();
    
     nyVerdi = true;
     status = !status;
    }

  4. har du noe forslag til korleis eg skal få kople opp dette? for eksempel korleis kan eg få ei led lampe til å lyse når det for eksempel er en ting som blokkerer lyset i optokobleren?

     

    Skreiv litt kode her kjapt, han kompilerer men eg veit ikkje om han fungerer. Planen er at han skriv ut tida mellom kvar periode (blokka, ikkje bokka). Då kan verdien brukast til å rekne moment og det andre du treng. Dette kan gjerast i mikrokontrollaren, men eg veit ikkje kor møkje matte som må til og om det vil ta for lang tid å rekne det ut.

     

    const int pinGaffel = 2;
    const int pinIndLED = 4;
    unsigned long mikroLOW, mikroHIGH; 
    long delta_t;
    
    int status = LOW;
    bool nyVerdi = false;
    
    void setup()
    {
     pinMode(pinGaffel, INPUT);
     pinMode(pinIndLED, OUTPUT);
     Serial.begin(115200);
     attachInterrupt(0, gaffelEndring, RISING);
    }
    
    void loop()
    {
     if (nyVerdi == true)
     {
     delta_t = mikroHIGH - mikroLOW; //delta_t er i mikrosekund
     delta_t = abs(delta_t);
    
     if (delta_t < 20000000) //Sjekker at micros() ikkje har hatt overflyt (skjer ca kvart 70. minutt)
     {
     Serial.print("dT=");
     Serial.println(delta_t); //Skriver ut delta_t
     }
    
     digitalWrite(pinIndLED, status);
    
     nyVerdi = false;
     }
    }
    
    void gaffelEndring()
    {
     if (digitalRead(pinGaffel) == HIGH)
     mikroHIGH = micros();
     else
     mikroLOW = micros();
    
     nyVerdi = true;
     status = !status;
    }

     

    Legger ved koplingskjema og.

    post-122587-1238431242_thumb.png

  5. Hva skjer dersom eg ikkje brukar motstandane?

     

    sikkert mange dumme spørsmål, men er heilt n00b på dette området :dontgetit:

     

    Om du ikkje bruker motstand vil straumen bli for stor og han blir øydelagt. Motstandar er billige og heilt nødvendige, om du ikkje har motstandar frå før vil eg anbefale deg å høyre med elektrolabben der du studerer eller høyre med nokon som held litt på med elektronikk. Om dette ikkje går så kan du kjøpe eit motstandssett på clas ohlson, men det inneheld 610 motstandar og er litt overkill. Husk at du treng motstand til lysdiodane viss du vil ha dei tilkopla. Om du går i Bergen så kan du få nokre motstandar av meg.

  6. Da har eg gått til inkjøp av

    Arduino

    Optisk giver

    Batterieliminator, noen lysdioder og litt kabler og dill dall.. Så nå er det bare å håpe på at dei fungerer ilag og at eg greier å programmere det.

     

    Såg bra ut det der! Gaffelen er utstyrt med ein fototransistor på utgangen, slik at det bare er å kopla ein motstand frå 5V til collectoren på transistoren og inn på ein inngang, og kople emitteren til jord. Verdien på motstanden er typisk ca 1 - 10 kOhm. Du må og ha ein motstand frå 5V til anoden på lysdioda på ca 200 Ohm

     

    Om du treng tips til programmeringa eller liknande så må du berre sei i frå!

  7. Tanken var å ha ein lysdiode til å lyse mot blankt stål og bruke ein fototransistor til å gi signal når lyset blir absorbert av streken. Halleffektgivar blir ofte brukt til å registrere omdreining, men dei treng magnetfelt for å virke, så du må ha magnetar festet på akselen. Induktive giverar har eg ikkje særlig erfaring med, men så lenge dei klarar å gi ut nok pulsar pr sekund burde det gå. Eg veit ikkje om nokon induktive giverar som går på 5V, men om du finn ein som passar så er det ikkje noko problem.

  8. Dette er ganske enkelt å gjere med ein mikrokontrollar. Om du ikkje har erfaring med nokon frå før av vil eg anbefale Arduino. Eg har sjølv erfaring med denne og anbefalar han sterkt! Den består av ein ATMega168 mikrokontrollar saman med ein FTDI USB - TTL omformar slik at du får usb direkte. Kjøper du eit ferdig kort kjem han brent med bootloader slik at det er bare å kople han i pcen å programere (språket er C).

     

    Når det gjeld det resten av elektronikken er det mange måtar å løyse den på, men eg ville brukt ei lysdiode og ein fototransistor. Det bør fungere å ha svarte tusjstrekar eller lignande med jamne mellomrom på sida av trommelen. Det er då ei smal sak å finne tida mellom kvar strek og dermed vinkelhastigheten.

     

    Arduino kan kjøpast frå Electrokit i Sverige, SparkFun i USA eller ei mengd andre stadar

  9. Du vil ikkje få noko telefonnummer til postmannen eller avdelingen, de nummerene er hemmelige då postbuda vil heller bruka tida på å dele ut posten enn å svare på kvifor posten er fem minutt for sein ein dag. Ring eller send mail til kundeservice og få lagt inn ein klage. Første gang ein klage blir registrert får postbudet beskjed om det, blir klaga igjen på same sak blir det tatt opp med postbudet av avdelingssjefen, blir det 3 klagar på same sak så blir områdesjefen kopla inn. Pass på at du får eit KRS-nummer når kundeservice har lagt inn klagen.

  10. Hvis én plattform produserer 10MW, hvordan kan da 30 plattformer årlig produsere 1200GWh?

     

    Fordi watt er effekten han kontinuerlig produserer, om han produserer 1 W i ein time har han produsert 1Wh. 30 maskiner som genererer 10 MW kvar i 8760 timar (365 dagar * 24 timar) blir 2628GWh, så kan ein trekke frå dagar som det er ugunstige vindforhold og vedlikehold.

     

    Edit:

    Installert effekt er effekten han leverar ved maks produksjon, noko som ikkje er så ofte.

×
×
  • Opprett ny...