Hallo,
Ik ben bezig met mijn gipproject en die omvat het volgende: de winsnelheid meten aan de hand van pulsen en de windrichting aan de hand van adconversie.
Ik heb een zender en ontvanger de software voor de ontvanger heb ik al wat staan maar met de zender weet ik niet hoe ik er aan moete beginnen.
Kan iemand mij wat helpen zodat ik wat verder kan geraken?
Ik zet de pulsen op de RA2 pin via timer 0 en de spanning van de windrichting op de RA0 pin via ADconversie.
hadv
Just find out what you like and let it kill you
Je vraag is niet helemaal duidelijk.
Je hebt pulsen en je hebt AD conversie.
AD conversie voor de windrichting kan ik mij wel wat bij voorstellen, maar hoe weet je hoe snel de wind draait aan de hand van het aantal pulsen? Heb je daar een formule voor?
E je hebt ook een zender en een ontvanger.
Hoe verhoudt dit zich tot elkaar, wil je de meetwaarden naar een ontvanger sturen? En wat gaat die er dan mee doen?
1 puls van de windsnelheideter is gelijk aan 2,4 km/uur.
De twee senoren komen toe aan op de zenderprint waar de pic16F690 staat via met pulsen timer0 en adconversie voor de spanning van de windrichting. Deze data worden verstuurt via een 433n tx zender en ontvangen en op de rx pin vn de pic16F887 gezet die op de ontvangersprint staat en die een lc display aanstuurt die deze data laat verschijnen.
hadv
Just find out what you like and let it kill you
Ik neem aan dat die puls ook nog in een bepaald tijds frame moet worden gemeten, bijv seconde?
Het zenden van waarden via een 433 zender is betrekkelijke eenvoudig.
De input van de 433 zender komt aan de TX pen van de 16F690, ground aan ground, 5v aan 5 volt.
Vervolgens bepaal je in welk formaat je de gegevens gaat overzetten.
Ik kan me voorstellen dat als de pulsen van de windsnelheid inderdaad per seconde gaan je aan een byte ruimschoots voldoende hebt.
De AD conversie kan zowel 10 als 8 bit zijn. In het eerste geval heb je dus 2 bytes nodig, in het tweede geval 1 byte.
Er is echter een 'maar'. De 433 ontvanger heeft een zekere traagheid voor het detecteren van een binnenkomend signaal. Als je daar 2 of 3 bytes heen stuurt heb je een hele dikke kans dat die niet goed overkomen. Je moet de ontvanger als het ware wakkerschudden.
Dat kan op verschillende manieren.
Ga er nou eens van uit dat je de windsnelheid het eerste wilt sturen en dat die, bij 2,4 km/uur niet boven de 100 zal uitkomen.
Dan stuur je eerst een waarde die flink hoger is om er voor te zorgen dat de ontvanger wakker wordt.
Het beste lijkt een signaal waar nogal wat nullen en enen elkaar afwisselen. Ideaal daarvoor is 170 (10101010). Daarna stuur je heel even, bv 10 ms, niets, dan weer 170 en weer 10 ms niets.
Dan stuur je de bytes waar het om gaat.
Daar moet je in je ontvanger natuurlijk wel rekening mee houden.
Cruciaal is dat de eerste 170 echt niet wordt gezien, maar die 10 ms niets wordt wel gezien. De tweede 170 wordt ook gezien. Op dat moment weet de ontvanger wat er kan komen.
Hallo we hebben dit voorbeeld gekregen om gegevens te verzenden en te laten verzchijnen op een lcd.
Ik wil dit programma veranderen zodat ik mijn pulsen kan tellen via timer0 per seconde voor windmeter en een spanning van de windvaan via pic 16F690. Dan wil ik het versturen naar de pic 16F887 die het op een lcd laatverschijnen. Kan iemand deze programma aanpassen voor mij?
Wat denk je nu zelf? Dat wij of iemand hier jouw huiswerk/GIP gaan maken?
Je code staat op een paar foto's. Je verwacht toch niet dat iemand dat over gaat kloppen om de richting aan te geven van een eventuele aanpassing.
Lees de voorwaarden en FAQ van de rubriek schoolvragen nog eens.
buckfast_beekeeper
Van Lambiek wordt goede geuze gemaakt.
Ben je zeker dat 1 puls gelijk is aan 2,4km/h=0,6666m/s in het gehele bereik? Waar haal je die waarde? Ik verwacht weinig pulsen per m/s bij lage snelheid en een veel groter aantal bij een hoge snelheid.
Windrichting meten via spanning kan maar is zeker niet de standaard. Het meest gebruikt is graycode. En dan heb je een digitale input. Kan 4 bits of meer zijn.
Voila ik heb zelf met veel zoeken en prutsen een programma in elkaar kunnnen steken die succesvol werkt zie fotos.
Het programma laat de pulsen meten en omzetten naar frequentie dus een frequentiemeting.
het enigste dat ik nog moet vinden is een formulz om mijn hertz om te zetten naar km/h.
Ik heb de volgende gegevens: als binnen de seconde 1 magnetisch contact sluit is de snelheid 2,4 km/h. Er zijn twee contacten. Dus twee pulsen in 1 toer.
Kan iemand mijn helpen met deze formule te vinden?
Arco
Special Member
Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com
Ik kom dan een decimale waardz uit en is geloofwaardig maar op een of andere manier begint dit getal te flippen als hij onder de 9 km per uur gaat of eerder gezegt als de windmeter stopt met draaien.
Arco
Special Member
Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com
Dan zal er wel iets niet kloppen aan je code. Voor meer geleidelijke uitkomsten kun je ook middelen over meerdere seconden...
Arco
Special Member
Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com