Sida 1 av 1

kod för pulsein i arduino eller avr

Postat: 21 september 2009, 18:14:20
av MIX
Hur använder man pulseIn funktionen i arduino för att läsa in en puls längd för att aktivera en I/O pin. har ganska nyligen börjat med arduino. om någon vänlig kunde hjälpa mig. kan inte få en förbaskad lm2907 att läsa av pulser :evil: men kunde fixa detta med en optoisolator på arduinon. I/O pinnen ska vara aktiv vid höga pulser som är snabbare än 11ms samt Stängd vid långsamare pulser. Eller hjälp med kod för ATTINY12L eller ATTINY15L skulle vara till mycket stor hjälp.

Re: kod för pulsein i arduino eller avr

Postat: 21 september 2009, 18:18:55
av eqlazer
Du använder en LM2907 och ska således läsa av en spänning?

Re: kod för pulsein i arduino eller avr

Postat: 21 september 2009, 18:28:47
av MIX
lm2907an är en frekvens till spännigsomvandlare?! pulserna jag mätte med arduinon var 11ms hög 11ms låg alltså 50% duty då va?

Re: kod för pulsein i arduino eller avr

Postat: 21 september 2009, 18:41:22
av eqlazer
Sitter LM2907an på arduinon eller är det nått du själv har kopplat in? Som du märker förenklar det om du talar om exakt hur du har kopplat, tex med länkar till datablad/schema.

Om du använder en LM2907 som jag fattar att den ska användas så använder du en ADC på din AVR för att mäta utspänningen från LM2907?
Sedan var det väl frekvens och inte dutycycle som mättes? (det kanske är valbart, vad vet jag men det borde väl inte påverka oss just nu)

Re: kod för pulsein i arduino eller avr

Postat: 21 september 2009, 21:14:41
av Mindmapper
Vore jag du skulle jag skippa 2907 och lösa det med optokopplaren istället. Låt pulsen gå in på optokopplarens lydiod i serie med en lämplig resistor. Sedan mäter du pulslängden på andra sidan optokopplaren med arduino'n.

Fördelen med det är dels att du får galvanisk isolation mellan mätobjektet och mcu. En annan fördel är att du slipper 2907 med kringkomponenter.

Re: kod för pulsein i arduino eller avr

Postat: 21 september 2009, 22:05:11
av MIX
Alltså jag ska bara mäta en frekvens på 0-6v fyrkantsvåg inte helt säker på spänningen har inte mät med oscilloskop , Har försökt att få LM 2907n DIP14 kretsen att fungera som en Speed switch länk men utan framgång. Har då kopplat in signalen mot arduinon bara med optokoplarn utan LM2907an och haft följande Kod för att mäta längden på pulserna. funkar klockrent mot arduinon är därför jag tänkt att skippa lm2907an. problemet är då lite med kodningen. är då väl en rätt enkel kod för detta. å andra sida känns det lite onödigt att använda en hel arduino för andamålet när en avr tiny skulle kunna göra jobbet.

Re: kod för pulsein i arduino eller avr

Postat: 21 september 2009, 22:36:50
av eqlazer
Okej, om du tänkt köra på en ATtiny istället så är det väl bara att börja koda för en sån :) Koden du länkade till är ju en bra utgångspunkt, där har du precis vad du behöver göra för att mäta. Bara att implementera funktion för funktion så att du i slutändan kan köra nått liknande allt det där.
Antar att det följer med all källkod till arduino så genom att gå ner i dessa funktioner ser du hur de gjort och det bör inte vara allt för mycket som behövs ändras för att köra på en ATtiny. Registernamn och bitar kan vara lite annorlunda men funktionaliteten brukar vara hyffsat lika.

Re: kod för pulsein i arduino eller avr

Postat: 23 september 2009, 21:27:14
av ghost_rider
jag hade gjort det så enkelt som möjligt, tagit pulsen till en digitalpin direkt på atmegachippet, läst av när det var HIGH, resp, LOW och hur länge mha lite kod