De opdracht is om een interface te maken met de computer waaarbij een spanning van 0 tot 5 volt in een programma te zien is d.m.v. een bargraph. De minimale resolutie is 0.1 en het moet een sample frequentie van 40kHZ hebben. Maar hoe kan dit gerealiseerd worden, welke programmeertaal, programma, interface heb ik hiervoor nodig??

Wat heb je zelf al bedacht?

Ik heb even de regels voor je, als je je daaraan houd wordt je met informatie en hulp platgeworpen:

Voorwaarde voor de Topic starter:

* Vraag moet voortkomen uit een opdracht van school en/of zelfstudie.
* Verwacht geen complete kant en klare oplossingen; je moet er immers van leren!
* Hoe minder informatie je geeft, hoe krommer de antwoorden zijn.
Het houd dus in dat je vraagstelling goed opgebouwd moet zijn:
o Probleemstelling (wat is de opdracht:
voorwaarde, welke criteria heb je gekregen.)?
o Wat heb je zelf al over het onderwerp gevonden?
o Wat is je doel (wil je er van leren, of zeg je van "als ik het maar heb" )?
o Verwacht niet binnen 1 dag een goed antwoord, dus kick je topic niet, ook al heb je haast bij de opdracht.
* Respecteer het als iemand niet erg positief is over jou kennis, vaak (99 van de 100 keer) bedoelt men het goed.
Dit kun je voorkomen door aan te geven wat jou kennis/niveau is.

[Bericht gewijzigd door Videomodulator op ]

Op 11 april 2006 14:04:38 schreef Videomodulator:
Wat heb je zelf al bedacht?

En waar heb je al ervaring mee ?

ElectroM

Wel wat magere informatie he.
Om wat voor computer systeem gaat het ?
heb je een mooi dedicated doosje ?
kun je gewoon een PIC processortje inzetten ?
of moet het op een PC ?
en is er sprake van een besturings systeem en zo ja welk is dat dan ?

Ik heb eens zoiets gemaakt,
kun je wel ergens op mijn website vinden
http://pascal.nedlinux.nl

Sorry, wel een beetje weinig info.. Zal me eerst even voorstellen, ik ben student electrotechniek (HTS) en heb de MTS (afstudeerrichting besturingstechniek) al afgerond met succes. Qua programmeer werk heb ik weinig tot geen ervaring, en bovendien ook als het gaat om een interface te maken tussen computer en hardware. (Dit is trouwens een thuis projectje)
De kennis op heb gebied van programmeertalen is delphi en assembly, wel is assembly nog wel erg lastig.
En op het gebied van delphi heb ik geen verstand hoe je poorten of hardware kunt aanspreken, uitlezen. Het maken van een bargraph is dan ook niet zo moeilijk in Delphi maar hoe kun je dmv een serieele of parrele of usb-poort zorgen dat je een signaal in delphi krijgt, zodat je hiervoor een bargraph mee kunt aansturen. De stepsize moet 1% zijn, voor de sample frequentie zijn geen eisen gesteldt maar hoe hoger hoe beter. Onder sample frequentie versta ik hoe vaak de computer kijkt wat de waarde van de hardware (0-5Vdc) is. De eisen zijn gemakkelijk, snel, goedkoop en betrouwbaar, omdat ik behalve Delphi geen verstand heb van andere mogelijkheden had ik het vrij oppervlakkig gehouden. Het moet dus op de computer-zichtbaar zijn, wat voor spanning de hardware uitstuurt. Het gaat me nu niet om de hardware maar hoe het maken van een interface, de hardware lijkt me niet zo'n probleem...
Kortom ik wil leren hoe je relatief eenvoudig via de computer met de buitenwereld kan communiceren...

Ik zou een simpele µP nemen (persoonlijk ben ik meer te vinden voor PIC's, anderen zijn meer fan van AVR's). Die kan je gemakkelijk aan de seriele poort van je PC hangen, en zo kan je byte per byte data overgooien.

De meeste PIC's hebben een A/D aan boord, waarmee je dan in een klap alles hebt. Er moet natuurlijk nog een programma in je PIC komen, dat kan perfet in assembly, maar je kan voor deze eenvoudige toepassing meteen in een hogere taal schrijven, ik ben erg tevreden van de compilers van mikroelektronica, je kan gratis tot 2k code schrijven (das redelijk veel), in Basic, C of Pascal (basic is het eenvoudigste imho).

Het programma dat je dan zou nodig hebben zit al klaar in de voorbeelden:

program adcusart

dim temp_res as byte

main:

  Usart_Init(9600)  ' Initalize USART (9600 baud rate, 1 stop bit, ...

  ' Select Vref and analog inputs, in order to use Adc_Read
  ADCON1 = 0    ' all PORTA pins as analog, VDD as Vref
  TRISA  = $FF  ' all PORTA pins as inputs

  while true       ' endless loop
    temp_res = Adc_Read(2) >> 2    ' read conversion result and push
                                         ' upper byte to temp_res
    Usart_Write(temp_res)                ' send temp_res via USART
    wend
    
end.

[Bericht gewijzigd door Videomodulator op ]

Heb gekozen voor de PIC 16F84 dit omdat er een simpele programmer voor staat op deze site. Maar hoe zorg ik dat ik dat ik een programma laat kijken naar de serieele poort, om zo het voltage te bekijken (0 - 5 V, liefts delphi... meer info kan ik niet verschaffen omdat ik weinig hiervan af weet.... en wat is een µP???

_______________________________________________________
edit
_______________________________________________________
Heb net de datasheet bekeken maar volgens mij zit er geen ad-convertor in de 16F84, dus zal moeten kijken naar een andere

BVD

electroM

[Bericht gewijzigd door ElectroM op ]

µP = Microprocessor, oftewel een IC.

Klopt, die 84 heeft geen AD. Een PIC is een soort µP.

Hoe het zit met delphi weet ik niet, maar in visual basic 6 kan je gewoon een module invoegen in je progje, dat stel je netjes in op de gewenste seriele poort, snelheid,... en dat werkt. Op internet of in de help van je comiler vind je wel uitleg over hoe je het best in Delphi doet.

In delphi moet je de TComPort component toepassen (van Dirk Claessens, google maar ff)om een Comport te kunnen sturen/uitlezen. Easy!

Da fripster

Kan het ook met een gewone AD-convertor? Of moet het perse met

http://www.circuitsonline.net/circuits/view/133

,want als ik het goed bekeken heb zijn alle pic programmers geschikt voor pics(op deze site) zonder ad-convertor. Of weet iemand een link naar een zelfbouw pic-programmer die geschikt is voor pics met ad-convertor--> wat ik het liefst heb...

[Bericht gewijzigd door ElectroM op ]

check maar ns even op PPWIN programmer. Werkt prima bij mij...maar ik weet niet precies voor welke PICs precies...

da fripster

Op 11 april 2006 16:58:38 schreef ElectroM:
Kan het ook met een gewone AD-convertor? Of moet het perse met

http://www.circuitsonline.net/circuits/view/133

,want als ik het goed bekeken heb zijn alle pic programmers geschikt voor pics(op deze site) zonder ad-convertor. Of weet iemand een link naar een zelfbouw pic-programmer die geschikt is voor pics met ad-convertor--> wat ik het liefst heb...

Je kan idd wel een aparte A/D convertor aan de PIC knopen. Neem dan wel een waar je gemakkelijk met je PIC mee kan communiceren (I2C of parallel ofzo).
Als je met dat schema'tje werkt, zit je ws een beetje vast aan die code die bijgeleverd wordt, maar dat zal idd werken.

Ik heb me niet heel erg verdiept in de A/D converter waaraan je refereert, maar ik vraag me af of hij de 40kHz. haalt.

En je COM poort zal deze snelheid ook moeten kunnen halen. Als je 0-5V wilt meten in stappen van 0.1V, dan heb je 51 mogelijkheden. Hiervoor heb je minimaal 6 bits nodig. 6 * 40000 = 240000 bits/s.

Indien je geen zin hebt in ingewikkeld schuiven met bits, dan zul je 8 bits gebruiken en kom je zelfs op 8 * 40000 = 360000 bits/s.

Op 11 april 2006 19:31:51 schreef ka_bonthond:
Ik heb me niet heel erg verdiept in de A/D converter waaraan je refereert, maar ik vraag me af of hij de 40kHz. haalt.

En je COM poort zal deze snelheid ook moeten kunnen halen. Als je 0-5V wilt meten in stappen van 0.1V, dan heb je 51 mogelijkheden. Hiervoor heb je minimaal 6 bits nodig. 6 * 40000 = 240000 bits/s.

Indien je geen zin hebt in ingewikkeld schuiven met bits, dan zul je 8 bits gebruiken en kom je zelfs op 8 * 40000 = 360000 bits/s.

Quote van ts:"eisen zijn gemakkelijk, snel, goedkoop en betrouwbaar". Gezien zijn voorkennis, moeten we hem laten beginnen met wat haalbaars, voor we alles uit de kast halen.
Eerste prioriteit leg ik hier op de TS wat waarden laten inlezen, ook al is dat 1 waarde per seconde. Eenmaal dat werkt, kunnen we verder. Niet proberen te lopen voor je kan stappen.

Onder het motto van eerst leren stappen voordat je leert lopen, zal ik eerst de programmer etsen, en de kennis voor het programmeren van een PIC weer wat ophalen... En zo stapje voor stapje verder gaan, mocht je tips hebben meldt ze dan... en als ik vragen heb meldt ik dit wel....

In ieder geval bedankt voor de hulp tot dusver...

Tsja, keb maar 1 tip, hou die mentaliteit die je nu toont. Als je simpel begint geraak je veel verder. Echt petje af, ik heb dit met scha en schande moeten leren (kheb nu nog een ongebruikt chipje in de kast liggen waar ik overmoedig aan begonnen ben, dom natuurlijk).

[Bericht gewijzigd door Videomodulator op ]

Is de spanning die je wilt samplen DC of AC ?

Als het een AC signaal is kan je een extern geluidskaartje via USB gebruiken 44kHz samplen en je ingangsspanning met een weerstandsdeler verkleinen tot het bereik van je AD converter in het externe geluidskaartje.

Via de hogere programeer talen onder windows moet je die redelijk kunnen uitlezen lijkt mij.