Gå til innhold

haavardgj

Medlemmer
  • Innlegg

    90
  • Ble med

  • Besøkte siden sist

Innlegg skrevet av haavardgj

  1. Prosjekt:

     

    Har ratt fjernstyring for original stereo anlegg i bilen, har byttet stereo og vil fremdeles kunne bruke fjernstyringen. (Ja, det er en Laguna, men den var gratis......)

     

    Mulig løsning:

    Skal dekode signalene fra fjern styringen, har ikke begynt på den biten ennå, tar den etterhvert. så skal en IR diode styre anlegget som kommer med fjernkontroll.

     

    Så det jeg trenger i første omgang er å dekode IR signalet fra fjernkontrollen og få arduinoen til å gjenskape de signalene jeg trenger.

     

    Noen forslag på hvordan jeg få dekodet signalet, helst ved hjelp av arduinoen???

     

    EDIT:

    Her var mye bra.... Må bare finne en passende ir mottaker, den jeg hadde var ikke brukende

     

    http://www.ladyada.net/learn/sensors/ir.html

     

    mulig du kan lage deg et program som leser høy/lav legger det i en streng, og printer den seriellt

     

    bare en tanke.. :thumbup:

  2. i første sikringsskap, (der PEN-splitten er, vil jeg tro at det ikke skal være nødvendig... der har PE (jord) og N (nøytral) samme potensiale, men hvis det er et stykke unna første sikringskap (50m -ish), kan det kanskje vurderes.

     

    Bor du eller skal du montere overspenningsvern på et lyn-utsatt område, kan du med fordel sette det inn om der er over 20-50 meter fra PEN-splitt, ellers hadde jeg ikke sett det som nødvendig

     

    =)

  3.  

    ingen?

    Du må nesten forklare litt hva du har tenkt. Først så setter du fbacklight til en input, og så skriver du til den?

    (Er fbacklight definert, forresten?)

     

    det som er problemet, er at når jeg slår av eller på, funker det fint. men når jeg setter den til auto, er den konstant på, uansett om inputen er høy eller lav...

     

    dvs: (Psuedokode)

    void setup();
    
    // definere input
    
    void loop();
    
    // gå igjennom meny
    
    if menu6 == auto { 
    //sjekk input
    if input == HIGH{
     digitalWrite(lys, HIGH) 
    if input == low {
     digitalWrite(lys, LOW)
    
    

     

    men når jeg trykker opp i menyen, går jeg fra "av" til "på". neste trykk er fra "på" til "auto", men når inputen er lav (av) er utgangen fortsatt høy. (i automodus)

  4. Hei

     

    har en lcd-skjerm, og noen knapper, der jeg har laget til en slags meny for å styre utganger, og vise hva jeg slår på/av, men jeg har litt problemer med auto-funksjonen jeg prøver å lage...

     

    her er deler av koden:

     

    // feedback to have auto on
    const byte ftrunk = 7; 
    const byte fbacklight = 5;
    const byte fxlight = 3;
    
    // menu
    byte updateit = 10;  // update the lcd
    byte menu = 0;       // menu level 
    int scrolling = 0;   // scroll between the firmware text 
    int sysdelay = 50;   // delay for update freq.
    
    // outputs
    byte xlight = 2;      
    byte backlight = 4;       
    byte trunk = 6;     
    
    
    // modes for menu, Standard output
    
    // 0 - off, 1 - on, 2 - auto
    byte mode0 = 0;
    byte mode1 = 2;
    byte mode2 = 2;
    byte mode3 = 2;
    byte mode4 = 0;
    byte mode5 = 0;
    byte mode6 = 1;
    
    void Setup()
    // feedback pin
    pinMode(fbacklight, INPUT);  digitalWrite(fbacklight, LOW);
    pinMode(backlight, OUTPUT); // light
    
    void out()
    
     if (mode2 == 0){
       digitalWrite (backlight, LOW);
     }
     if (mode2 == 1){
       digitalWrite (backlight, HIGH);
     }
     if (mode2 == 2){
       if (fbacklight == HIGH){
         digitalWrite (backlight, HIGH);
       }
       if (fbacklight == LOW){
         digitalWrite (backlight, LOW);
       }
     }
    
    
    

     

    det som er problemet, er at når jeg slår av eller på, funker det fint. men når jeg setter den til auto, er den konstant på, uansett om inputen er høy eller lav...

     

    noen som ser om jeg har gjort noen feil?

     

    ingen?

  5. ja er ferdig monterte motstander på. denne skal egenlig ha 12v, så 5v vart litt lite, kan jeg gi dem en alternativ strømkilde, å la arduinoen styre lysene?

     

    bruk en transistor og koble sammen jord fra spenningskilde

    hvis du kobler en strømforsyning til arduinoen via 2,1mm plugen, vil du kunne koble deg på Vin-pinnen og til en utgangs-pin.

     

    1029315.jpeg

  6. Men hvor mye strøm drar Arduino'en i sleep da? Det ser ut til at Uno har andre spenningsregulatorer enn 7805, som jo var ankepunktet tidligere.

    MSP430 drar kun 1 mikroA ifølge Wikipedia.

     

    It uses about 19 mA when awake (some of which would be the LED) but only 25 uA (0.025 mA) when asleep. 25 uA isn't much, and would not drain your battery very quickly.

    er ikke sikker på om det er så store forskjeller, mellom duemilanove'n eller unoen...

     

    evt, kan du jo lage deg en standalone arduino, og bruke en spenningsregulator som bruker minst mulig strøm i idle...

  7. Hei

     

    har en lcd-skjerm, og noen knapper, der jeg har laget til en slags meny for å styre utganger, og vise hva jeg slår på/av, men jeg har litt problemer med auto-funksjonen jeg prøver å lage...

     

    her er deler av koden:

     

    // feedback to have auto on
    const byte ftrunk = 7; 
    const byte fbacklight = 5;
    const byte fxlight = 3;
    
    // menu
    byte updateit = 10;  // update the lcd
    byte menu = 0;       // menu level 
    int scrolling = 0;   // scroll between the firmware text 
    int sysdelay = 50;   // delay for update freq.
    
    // outputs
    byte xlight = 2;      
    byte backlight = 4;       
    byte trunk = 6;     
    
    
    // modes for menu, Standard output
    
    // 0 - off, 1 - on, 2 - auto
    byte mode0 = 0;
    byte mode1 = 2;
    byte mode2 = 2;
    byte mode3 = 2;
    byte mode4 = 0;
    byte mode5 = 0;
    byte mode6 = 1;
    
    void Setup()
    // feedback pin
    pinMode(fbacklight, INPUT);  digitalWrite(fbacklight, LOW);
    pinMode(backlight, OUTPUT); // light
    
    void out()
    
     if (mode2 == 0){
       digitalWrite (backlight, LOW);
     }
     if (mode2 == 1){
       digitalWrite (backlight, HIGH);
     }
     if (mode2 == 2){
       if (fbacklight == HIGH){
         digitalWrite (backlight, HIGH);
       }
       if (fbacklight == LOW){
         digitalWrite (backlight, LOW);
       }
     }
    
    
    

     

    det som er problemet, er at når jeg slår av eller på, funker det fint. men når jeg setter den til auto, er den konstant på, uansett om inputen er høy eller lav...

     

    noen som ser om jeg har gjort noen feil?

  8. Med god koding, hvilken er mest strømgjerrig av Arduino uno og texas instr. MSP430...?

    (er de to jeg har hjemme nå)

     

    Skal bygge et prosjekt som skal være batteridrevet, med lang batterilevetid, å lurer på om jeg ikke skal bruke Texas i stede, har intrykk av at Texas er svært så strømgjerrig i.f.t.?

    Om jeg klarer å bruke strømspare modus 4 også så er det vel ingen tvil??

     

    (Har ikke spesielt bred erfaring med dette, kanksje svaret er så innlysende at det er idiot-spørsmål :whistle: )

     

    Se her:

     

    Arduino sleep

     

    eller her:

    Arduino Sleep 2

  9. Hei

    har en teat NTC 20 termistor, som jeg vil lese av med arduinoen. den er 20k ohm ved 25C. jeg prøvde å lage en spenningsdeler:

     

     

    Hva med å bruke en DS18B20 temperatur sensor ?

    Ligger en enkel men bra tutorial her

     

    http://www.hacktronics.com/Tutorials/arduino-1-wire-tutorial.html

    nå var jo tanken å bruke det jeg allerede hadde... siden jeg har en 3-4 stykk, og de er av industriell standard, er det enklere (og billigere) enn å begynne å kjøpe inn noe som ikke har den beskyttelsesgraden. samtidig har jeg alt som trengs for å montere sånne sensorer, så da blir det bedre enn en DIY-løsning.

     

    men, takk for guiden

  10. for å gi deg noen tips, kan jeg begynne med hva jeg selv har:

     

    1 duemilanove (2009)

    1 uno

    1 mega 2650

     

    deretter har jeg et orginalt ethernet shield (fra produsentene av arduino) og en "Serial enabled LCD" fra sparkfun (.com)

     

    dette funker supert, og gir meg mange muligheter. LCD-en har seriell kommunikasjon, som gjør at du ikke trenger mange ledninger eller avansert kode. du kobler på + og -, og sender serielle data på en tredje leder. da vil alt som blir printet seriellt til lcd-en blir visendes.

     

    nå har jeg en 16x2 lcd, men jeg savner litt mer plass av og til.

    det å kjøpe en 20x4 kan lønne seg, ihvertfall om du har en del tekst å vise frem.

     

    over til ethernet shieldet;

    dette er da et trådbasert ethernet-kort, som baserer seg på Wiznet 5100 chipen. og i den nyeste versjonen, har de lagt til en kortleser for SD-kort. med denne kan du lagre data på et SD minnekort (opp til 4 GB tror jeg), og ta det med til datamaskinen for f.eks. analyse. eller så kan du bruke SD-kortet til å logge data, lagre variabler, eller å lagre html sider som kan vise status eller målinger fra arduinoen.

     

    trådløse "shields" har jeg ikke vært borti ennå, men etter det jeg har lest, skal det være nesten det samme som et trådbasert kort, bare at du må ha 2 linjer ekstra kode for å definere nettverket.

     

     

    Håper dette var litt til hjelp.

    og hvis du lurer på noe, er det bare å sende en PM

     

    Hilsen

    Håvard

  11.  

     

    det er vel strengt tatt det jeg har gjort, men da vil jeg bare få målinger fra ca 10 til 40 grader, noe som er for lite målbart område...

    hvis jeg får det til, kan det hende at jeg trapper hele sensoren i kjøleblokka på bilen, og der må jeg vite om det er 41 grader eller 91 grader, noe som ikke går med dagens oppsett om du skjønner =)

     

     

    Så vidt jeg kan se så vil koden du har skrevet gi deg 10 grader hvis ADCen (sensorValue) returnerer 0, og 40 grader om ADCen returnerer 1023, noe som er helt feil. sensorValue vil heller aldri være mindre enn 10 eller høyere enn 40 etter map funksjonen (om jeg har tippet dens funksjonalitet rett), så if-else her er litt bortkastet.

     

    Her er noe jeg mener er mer korrekt:

     

    static const uint16_t adctmp[] PROGMEM= 
    {1012, 1006, 999, 988, 977,
     960, 939, 913, 880, 842, 
     797, 747, 691, 633, 572, 
     512, 453, 398, 346, 299,
     257, 221, 189, 161, 137,
     117, 100, 87, 73, 64, 
     54, 48, 42, 36, 30};
    
    int getTemp(){
    uint16_t* ptr = &adctmp;; //pointer to lookup table in flash
    uint16_t adcval = analogRead(sensorPin); // read analog value
    uint16_t idx = 0;
    uint16_t tmp0, tmp1;
    uint16_t temp, temp0, temp1;
    //search through table looking for closest fit
    tmp0 = pgm_read_byte(*ptr++);
    while(adcval < tmp0){
    	tmp1 = tmp0;
    	tmp0 = pgm_read_byte(*ptr++);
    	idx++;
    }
    //calculate the two temperatures (5 degrees per index in the table)
    temp1 = ((idx-1)*5)-50; //lower limit 
    //temp0 = ((idx)*5)-50;   //higher limit
    //interpolate between these two
    temp = temp1 + ((5*(tmp1-adcval))/(tmp1-tmp0));
    //return final value
    return temp;
    }
    

     

     

    Her har jeg først tatt tallene fra databladet og lagt inn i et spreadsheet (XL) dokument og lagt til de 5 graders intervallene som manglet (lineært interpolert). Så regnet jeg ut hva spenningen vil være ved de forskjellige temperaturene, og fant etter det den tilhørende ADC koden. Jeg kan da se at du skal kunne ha ca 0.5 grader oppløsning om jeg ikke har gjort noe feil. Tok så tallene for ADC kode og la inn i tabellen her, og så bruker jeg indeksen til å regne med tilbake til den faktiske temperaturen.

     

    PS: har ikke testet koden, så det kan være feil i den, men vil tru at dette skal gi et mye bedre resultat enn hva du hadde i utgangspunktet (om jeg ikke har gjort noen alvorlig tabber her da... litt sliten i hode i dag...)

     

     

    hvordan skal jeg da gjøre det med spenningsdeleren? nå er termistoren 20k@25C, så skal jeg bare beholde 20k-en på andre siden, eller bør jeg endre verdien?

     

    EDIT: målte motstanden på andre siden... den var 19,64k

  12. Er dette NTC din: http://www.produal.c...TEATNTC20ea.pdf

    I så fall bør det vell fungere greit å bruke den tabellen som står der til å beregne temperaturen, og gjøre lineær approksimering i mellom punktene om du ikke trenger 100% nøyaktighet (den ser ikke ut til å være veldig lineær, men du vil i alle fall ikke bomme med mer en et par grader).

     

    det er vel strengt tatt det jeg har gjort, men da vil jeg bare få målinger fra ca 10 til 40 grader, noe som er for lite målbart område...

    hvis jeg får det til, kan det hende at jeg trapper hele sensoren i kjøleblokka på bilen, og der må jeg vite om det er 41 grader eller 91 grader, noe som ikke går med dagens oppsett om du skjønner =)

  13. Hvordan har du gått frem for å få omgjort spenningen som kommer til A0 til temperatur?

     

    det har jeg gjort med map-funksjonen

    sensorValue = analogRead(sensorPin); // read analog value
    
      sensorValue = map(sensorValue, 0, 1023, 10, 40); // remap the input to fit the measuring scale
    
       if (sensorValue <= 10 )   { client.print(" < 10 "); // if lower than scale
     }
       else if (sensorValue  >= 40 ) { client.print("> 40 "); // if over scale
     }
       else {client.print(sensorValue); //print to web page
       }

  14. Hei

    har en teat NTC 20 termistor, som jeg vil lese av med arduinoen. den er 20k ohm ved 25C. jeg prøvde å lage en spenningsdeler:

     

     

    ascii skjema:
    
    +5V - R20k - * - NTC - GND
                |
                |
                A0 
    

     

     

    da får jeg målinger fra ca 10 til ca 40 grader,

    men jeg skulle utnyttet mere av temp-båndet, så er det noen kloke hoder som kan hjelpe meg med å få det til? :hmm:

     

    kan hende at det er nok å endre motstanden i spenningsdeleren, men jeg er ikke helt dreven på elektronikk, samtidig med at jeg tenker alt for vanskelig... :roll:

  15.  

    Tenker en del på styring av lys osv, men tror jeg skal prioritere å lage en termostat. Ovnene her har kun forhåndsdefinerte programmer som ikke passer meg. Jeg står opp tidlig og er ikke hjemme før sent på kvelden og da er det unødvendig at ovnen står på store deler av dagen. Tenkte derfor å lage en termostat som styrer alle ovnene i leiligheten. Da kan jeg velge tidspunktene selv eller overstyre det via ethernet. Har kjøpt inn litt deler og skal starte i morgen! Vinteren nærmer seg så jeg må kjappe meg :p Vet det er flere lignende prosjekter der ute, men jeg er ikke helt fornøyd med de løsningen samtidig som at jeg vil gjøre alt selv :p

     

    tidsur med mulighet for flere inn/utkoblinger med en leder ut til hver ovn.. funksjonen på ovnene heter nattsenking (reduserer temperaturen med 5-10 grader), og de aller fleste ovnene av litt nyere dato har inngang for nattsenk. evt kan du bruke en kontaktor/rele som blir styrt av en arduino eller hva du enn bruker for å styre over eth.

  16. Hei,

    driver så smått med hjemmeautomasjon, og så har jeg fått noen trafoer på jobb som benytter dali/dsi for å dimme lyset, men jeg må ha et interface mellom arduinoen og dali elelr dsi-bus-en sånn at jeg kan bruke arduinoen som kontroller... jeg har også en dsi dimmer, (selve rattet) som også kunne vært fint å bruke. :roll:

     

    er det noen som har kjennskap til dali eller dsi, som kan gi meg et hint om hvor jeg kan begynne? :ermm:

     

    tanken er å ha en arduino som sentral, og så ha dali/dsi kontroll ut til lampene så jeg kan bruke datamaskinen eller mobilen til å dimme/slå av/på lampene.

    gjerne kom med innspill om det er lettere løsninger eller andre alternativer ;)

  17. den kobler ikke forbi drosselen nei... hvis du leser på wikilenken jeg postet, vil du se hva som står der.

     

    her er link til start av lysrør

     

    se på koblingskjemaet som står der, da vil du se at glimtenneren legger seg inn og seriekobler spolene i begge sidene av lysrøret sånn at de "varmer opp", etter en stund vil den legge seg ut igjen og da kommer drosselen og gjør sin jobb...

  18. @LaStrada: mangler bare at du gjør løsningen permanent, og at du implenterer en rfid brikke i hånden =P så en på nyhetene som hadde gjort det, var veldig stilig... han la hånden inn mot veggen, så åpna døra seg

     

    jeg har tenkt litt på hjemmeautomasjon, med diverse styringer av lys og sånn, men jeg må få laga en manuell styring i tillegg, pga WAF-en... litt vrient å dimme lamper også da, men jeg har en dali/dsi-dimmer, så jeg må bare få laget et interface mot dali/dsi... noen som har forslag?

  19. og for å være kverulant og pirkete, så ja det er en glimtenner, men den varmer fortsatt opp enden

     

    Sakset fra engelsk wikipedia:

    When the light is turned on, the electric power heats up the cathode enough for it to emit electrons (thermionic emission). These electrons collide with and ionize noble gas atoms inside the bulb surrounding the filament to form a plasma by the process of impact ionization.

     

    så den varmer opp!

     

    EDIT: lenke: Wiki

×
×
  • Opprett ny...