Micro-controller toegepast.

Pagina: 1
Acties:

Onderwerpen


  • kitao
  • Registratie: Juli 2012
  • Laatst online: 05-09 16:01
Hallo, de bedoeling van dit topic is dat de deelnemers laten zien hoe ze de MC toepassen om bepaalde schakelingen te sturen.
Het is niet zozeer bedoeld om lappen codeteksten te plaatsen maar gewoon om met afbeeldingen, foto's en schema's te laten zien wat voor leuke dingen je met een micro kunt doen.
Leerzaam voor jezelf en anderen om dit in korte formuleringen te gieten, eventuele details kunnen dan altijd nog opgevraagd worden.

ADC0831
Onderstaande toont een ADC0831 die geschakeld staat als DVM(digitale voltmeter). De draad op Vin+(2) kun je gewoon zien als de plusdraad van een voltmeter, de micro zorgt ervoor dat de gemeten waarde in beeld komt. Net als bij een voltmeter heeft deze draad totaal geen invloed op de rest van de schakeling maar is wel uitermate makkelijk omdat er een 'voltagesweep' mee uitgevoerd kan worden. Dit houdt in dat alle mogelijke 16 spanningen in een tabel op het scherm kunnen worden weergegeven.

Weerstandsladder
R1-R9
Dit is een D/A-converter, op pin 4-7 kunnen 16 combinaties gezet worden van 0000 t/m 1111 corresponderend van 0 tot 3.1 volt in stapjes van 0.2V

LM538
Deze staat geschakeld als een spanningsvolger met versterking 1 en dient als buffer om de led aan te sturen.
Zonder deze buffer en indien de led direkt op de ladder wordt gezet dan zakt de uitgangsspanning van die ladder weg. De buffer voorkomt dit dus en houdt de maximale spanning van 3.1V mooi op peil.

Ok, een afbeeldingen gedownload met postimage zodat ze klein blijven. Door erop te klikken krijg je een volledige grootte te zien.
Het schema is gemaakt met LTSpice.

Afbeeldingslocatie: http://s14.postimage.org/6tsm5sg4d/img10.jpg

Afbeeldingslocatie: http://s11.postimage.org/be6nouy4f/IMG_0269.jpg

Een uitgebreide uitleg van de schakeling is hier te vinden incl. code in hoofdstuk 4
http://www.parallax.com/P...sicAnalogDigital-v1.4.pdf

Dus aarzel niet, laat zien waar je mee bezig bent :)

[ Voor 9% gewijzigd door kitao op 15-09-2012 17:29 ]


  • SA007
  • Registratie: Oktober 2002
  • Laatst online: 11-09 22:18

SA007

Moderator Tweaking
Ik mis misschien iets, maar wat bereikt deze schakeling?

Ik zie een D/A convertor, een A/D convertor en een opamp met als totale uitgang 1 LED, Is het een soort manier om LEDs door te meten?

Acties:
  • 0 Henk 'm!

  • kitao
  • Registratie: Juli 2012
  • Laatst online: 05-09 16:01
Het doel van de schakeling ligt meer op het educatieve vlak denk ik en de led is meer bedoeld als belasting waar eigenlijk ook gewoon een kale weerstand voor had kunnen worden gebruikt. Het voordeel van een led is natuurlijk het visuele ervan en (toevallig) liet het mij ook de drempelspanning ervan 'ontdekken'.
Dit is de schakeling zonder buffer 358, gemeten op punt A :
Afbeeldingslocatie: http://s8.postimage.org/e2vfrrx9d/img11.jpg
Mbv het programma in de micro dat dus de pinnen P4-P7 van 0 t/m 15 laat 'tellen' komt er dit als uitgangsspanning uit :
Afbeeldingslocatie: http://s9.postimage.org/97mjeb5yz/img12.jpg
Met buffer wordt dit vrijwel identiek gelijk aan een onbelaste weerstandsladder, weer gemeten op A :
Afbeeldingslocatie: http://s10.postimage.org/clmpjsuo5/img13.jpg
Dan komt er dit op de uitgang te staan :
Afbeeldingslocatie: http://s8.postimage.org/4w4ewdu75/img14.jpg
Hetgeen dus betekent dat de buffer maar liefst 33% van de beschikbare spanning 'redt'.
Met buffer 3V ; zonder buffer 2V.
(ps, door de twee debug afbeeldingen onder elkaar te leggen kan gelijk de code worden meegelezen)
Door het programma te laten lussen en pauzes in te lassen zou je dus een langzaam repeterende zaagtandspanning hebben gemaakt die de led geleidelijk doet branden en weer uitgaan enz.
Overigens geeft het 'lesboek' zelf de beste verklaring voor het doel van deze schakeling :
How can I apply this?
You've just built a variable voltage source and a digital voltmeter on the same
breadboard. You also used some PBASIC programming techniques to obtain information
about the converter using a voltage sweep. One application of this can be testing circuits,
but there are many others. In Chapter #5, we'll see how PBASIC can be used to control
the volume of tones emitted by a speaker. In Chapter #7, we'll use D/A conversion to
control the brightness of an LED transmitting a signal to a photoresistor.
The applications for D/A and A/D interfaces combined with a microcontroller are only
limited by one's imagination. These techniques can be applied to automated houses,
irrigation systems, rocket guidance systems, and robotics to name a few.

Acties:
  • 0 Henk 'm!

  • 3xhaas
  • Registratie: Februari 2002
  • Laatst online: 26-09-2024
Het lijkt erop dat je een DAC wilt maken met een uC en de uitgang wilt controleren terugkoppelen naar diezelfde uC omhem nauwkeuriger te maken.
Heb je al gedacht aan de PWM uitgang i.c.m. een low pass filter als DAC i.p.v. de weerstandsdeling die je nu hebt?
De voordelen daarvan zijn dat je maar 1 DAC pin nodig hebt, het is van zichzelf al behoorlijk nauwkeurig, het zit hardwarematig in de uC. Een nadeel ervan is dat je een ripple zult krijgen. Hoe groot die is hangt van je PWM frequentie en filter af.

Acties:
  • 0 Henk 'm!

  • kitao
  • Registratie: Juli 2012
  • Laatst online: 05-09 16:01
Ik zie eigenlijk geen terugkoppeling naar de micro Haas,
Het enige wat de micro in gaat is pin 6 van de ADC0831, de DO oftewel de Data Output lijn van de 831.
Deze heeft echter geen invloed op de schakeling als geheel; zou ik deze weglaten :
Afbeeldingslocatie: http://s13.postimage.org/7lzdca643/img15.jpg
en op P4-P7 opnieuw digitaal gaan 'tellen' van 0000 t/m 1111 dan blijft het resultaat hetzelfde met enkel verschil dat het niet in beeld komt op mijn pc.
Zou ik een voltmeter nemen en met schakelaars bijvoorbeeld 1111 erop zetten (op P4-P7) dan zou ik gewoon net als voorheen 3.10V aflezen op punt A.

Afbeeldingslocatie: http://s13.postimage.org/4yau4oayb/img16.jpg

Dat is niet alleen met bovenstaande sim te zien maar ik heb dat ook met een multimeter geprobeerd.
Op de rest van je post kom ik nog terug.

Acties:
  • 0 Henk 'm!

  • kitao
  • Registratie: Juli 2012
  • Laatst online: 05-09 16:01
3xhaas schreef op zondag 16 september 2012 @ 07:51:

Heb je al gedacht aan de PWM uitgang i.c.m. een low pass filter als DAC i.p.v. de weerstandsdeling die je nu hebt?
De voordelen daarvan zijn dat je maar 1 DAC pin nodig hebt, het is van zichzelf al behoorlijk nauwkeurig, het zit hardwarematig in de uC. Een nadeel ervan is dat je een ripple zult krijgen. Hoe groot die is hangt van je PWM frequentie en filter af.
PWM ken ik nog niet zo lang, het komt pas later in het boek waar ik mee bezig ben naar voren. Ik heb even in de index gekeken en inderdaad het zit in de micro zelf, oproepbaar met de volgende syntax :
PWM Pin, Duty, Cycles
Function
Convert a digital value to analog output via pulse-width modulation.
• Pin is a variable/constant/expression (0 – 15) that specifies the I/O
pin to use. This pin will be set to output mode initially then set to
input mode when the command finishes.
• Duty is a variable/constant/expression (0 - 255) that specifies the
analog output level (0 to 5V).
• Cycles is a variable/constant/expression (0 - 255) that specifies the
duration of the PWM signal.
http://www.parallax.com/P...d/stamps/web-BSM-v2.2.pdf
pagina 355
Ook zie ik inderdaad een elcootje over die pwm-pin heen zitten van 1uF, ik neem aan dat je dat bedoelde als filter.
Afbeeldingslocatie: http://s15.postimage.org/rzz54p65j/img17.jpg
http://www.parallax.com/P...sicAnalogDigital-v1.4.pdf
pag.127 (toets 137 in op het pdf bladzijde menu)
Zoals gezegd ben ik echter nog niet zo ver :/

Maar ik ben eigenlijk ook wel benieuwd wat anderen voor micro-toepassingen hebben dat gevisualiseerd kan worden, misschien het sproeien van de tuin, het sturen van een modelboot, het opnemen van de meterstanden enz.
Wat doe jij er zoal mee 3xhaas ? :)

Acties:
  • 0 Henk 'm!

  • mad_max234
  • Registratie: September 2003
  • Laatst online: 07-02 11:09

mad_max234

AMD Athlon II M320

Dat is een low pass filter, ook wel bekend onder RC filter. 10K weerstand en 1uF cap vormen de RC filter, in dit geval is de cute off frequentie met deze cap en weerstand combinatie 16Hz.

[ Voor 31% gewijzigd door mad_max234 op 16-09-2012 12:46 ]

-Andere hobby- -


Acties:
  • 0 Henk 'm!

Verwijderd

hallo,

toegepast: MBED MC (NXP LPC1768)
icm: externe 16bits ADC ( LTC1867 via SPI)
Sensor: versnellingssenor +/- 200G (measurements speciality's)
output: via standaard LCD scherm (2x 16 karakters)

Waarvoor wordt dit gebruikt?
Op een apparaat wat de toestand meet van een kunstgrasveld. 3 metingen geven de toestand aan:
- Force reduction
- Energy resistution
- Vertical deformation.

Moeilijkheid:
- er wordt een meting gedaan van 1 seconde (gewicht met sensor valt) met samplerate 10Khz
- 10000 waarden opslaan in array
- software matig filteren (2 orde butterworth)
- de nieuwe waarden weer opslaan.
Helaas geen geheugenruimte voor 2x 10000 waarden
Opgelost dmv slim programmeren (zelfde array hergebruiken)

Hardware: heel veel problemen om een schoon meetsignaal te krijgen.(uiteindelijk wel opgelost, maar niet door mij )

Resultaat1: in gebruik genomen commercieel product.
Resultaat 2: was mijn afstudeerproject (HBO deeltijd TI), geslaagd :)

Marcel

Acties:
  • 0 Henk 'm!

  • kitao
  • Registratie: Juli 2012
  • Laatst online: 05-09 16:01
Dat zijn mooie resultaten hifiman, ik mis enkel een beetje het visuele ervan, vooral als dit een commercieel produkt is geworden dan had ik die graag gezien. ;)
Bedoel je deze LPC 1768 ?

Afbeeldingslocatie: http://s12.postimage.org/n97rery7d/pinout.jpg
http://ics.nxp.com/suppor...nt.hardware/mbed.lpc176x/

Er schijnt namelijk ook een stick versie te zijn zo te zien

Afbeeldingslocatie: http://s11.postimage.org/sbgbe8a3z/lpc1768stickgr.jpg
http://www.lpctools.com/lpc1768.stick.aspx

(edit:klik foto's voor vergroting indien gewenst)

[ Voor 5% gewijzigd door kitao op 18-09-2012 15:58 ]


Acties:
  • 0 Henk 'm!

  • Sissors
  • Registratie: Mei 2005
  • Niet online
Hij bedoelt de bovenste, de onderste is een totaal ander product. NXP promoot zulk soort producten dus er zijn wel meer varianten te vinden (zoals de LPCXpressos).

Ik gebruik de mbed ook, relatief prijzig voor hobby gebruik, maar wel erg makkelijk in gebruik maar tegelijkertijd nog wel krachtig. Uiteindelijk moet hij bij mij het hart van een quadrocopter achtig iets gaan vormen, maar dat gaat rustig aan.

Gebruik er op mijn werk ook eentje, maar daar is hij niet veel meer dan een veredelde level-shifter (en hij kan nog 8-bit parallel inlezen op 1MHz, niet erg bijzonder, al wordt het op een Arduino wel twijfelachtig).

[ Voor 35% gewijzigd door Sissors op 18-09-2012 16:12 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Hallo,


Fubry is correct. Betreft het eerste product.

Voor de visuele weergave ervan:
Afbeeldingslocatie: http://www.engineersonline.nl/wosimages/nieuws_18193_20630_item_original.jpg

link: http://www.engineersonlin...t-kunstgras-in-beeld.html

kort filmpje: YouTube: Club Set Club Tester#!

Het eindproduct is te vinden op de site van www.deltecmetaal.nl (even zoeken op de clubtester).

inhoudelijk over de gebruikte code kan ik niet veel loslaten.

NB: ik werk niet meer bij ARMAC waarover in het artikel wordt gesproken.

[ Voor 14% gewijzigd door Verwijderd op 18-09-2012 20:52 . Reden: links aangepast ]


  • kitao
  • Registratie: Juli 2012
  • Laatst online: 05-09 16:01
Bedankt hifiman, dat is heel mooi visueel weergegeven, zelfs met een filmpje erbij :)

Ok, een minder ingewikkelde toepassing :

Micro-controller PIC16F57 registreert frequenties met een astabiele multivibrator :

Een micro heeft een interne teller die gebruikt kan worden om frequenties op te meten. De teller verhoogt met 1 nadat een bepaald voltage 2 maal wordt gepasseerd; de zgn treshold voltage.

Afbeeldingslocatie: http://i.imgur.com/ift1ul.png

With the COUNT command, the BASIC Stamp increments a value when the input voltage passes the 1.4 volt I/O pin threshold twice. This makes programming and interpreting the frequency data easy for periodic signals such as the pulse train, triangle wave and sine wave.

Opstelling:
Afbeeldingslocatie: http://i.imgur.com/iloWJl.png
nc=not connected
speaker is een piezo

Gebruikte code:

f VAR Word
DO
COUNT 0, 1000, f
DEBUG HOME, "Frequency: ", DEC4 f, " Hz.", CR, CR
LOOP

Uitleg Count :
COUNT Pin, Duration, Variable
Function
Count the number of cycles (0-1-0 or 1-0-1) on the specified pin during the Duration time frame and store that number in Variable.
• Pin is a variable/constant/expression (0 – 15) that specifies the I/O pin to use. This pin will be set to input mode.
• Duration is a variable/constant/expression (1 – 65535) specifying the time during which to count. The unit of time for Duration is described in Table 5.6.
• Variable is a variable (usually a word) in which the count will be stored.

Op je scherm komt dan via de Debug-commando de gemeten frequentie die dus instelbaar is via pot B.

Toepassing :
Geen idee eigenlijk, er komt een heel hoog onaangenaam piepje uit en dat is het.
Leuk om de ondergrens van je gehoor mee op te meten maar voor de rest nutteloos.
Zelf heb ik het wat interessanter gemaakt door een oscilloscoop op pin 0 en Vss te zetten en de gemeten waarden komen dan mooi overheen.
Voor wie uitgebreid wil nalezen :
http://www.parallax.com/P...sicAnalogDigital-v1.4.pdf
hfdst. 6

  • kitao
  • Registratie: Juli 2012
  • Laatst online: 05-09 16:01
PWM gegenereerde spanning zorgt voor een optische signaaldetectie, opgemeten met een DVM.

Uitleg PWM
Met een micro kan een PWM-signaal (puls width modulation) worden verstuurd volgens :
PWM Pin, Duty, Cycles
Function : Convert a digital value to analog output via pulse-width modulation.
• Pin is a variable/constant/expression (0 – 15) that specifies the I/O pin to use. This pin will be set to output mode initially then set to input mode when the command finishes.
• Duty is a variable/constant/expression (0 - 255) that specifies the analog output level (0 to 5V).
• Cycles is a variable/constant/expression (0 - 255) that specifies the duration of the PWM signal.

Bijvoorbeeld 'PWM 8,128,50' geeft vanuit P8 een spanning van (128/255) x 5V = 2.5V
Dus door Duty te veranderen krijg je ook een andere spanning.

Opstelling :
Afbeeldingslocatie: http://i.imgur.com/2hZdOl.png

Uitleg:
P8 als uitgang van de micro zorgt dus voor de PWM op het RC-circuit. Wordt dit RC belast dan zakt de spanning te ver weg vandaar de buffer-opmap LM358 die ervoor zorgt dat uitgang 1 dezelfde spanning behoudt, maar meer stroom kan leveren als ingang 3.
Volgende stap is de led met een fotoweerstand.
Hoe meer licht, hoe minder de weerstand van die fotoweerstand, hetgeen dus betekent dat er bij meer licht meer spanning op pin2 van de ADC komt te staan.
De ADC wordt gebruikt als DVM (digitale voltmeter) en via pin6 van de ADC krijgt de micro op P2 de gemeten waarde binnen, die dan weer op het scherm van je PC kan worden weergegeven.

Gebruikte Code:
Teveel om hier te plaatsen, zie hfdst.7 in dezelfde link als de vorige post.

Toepassing:
Educatief, het laat een beetje het principe zien van een lichtmeter (camera) of een lichtsluis (liftdeur)

Mooi, dat was het dan weer voor vandaag, geen high-tech maar voor beginners (zoals ik) een leuke indruk wat je er zoal mee kan doen met een micro-bordje of dit nu arduino, pic16, of wat dan ook is.
Alleen zullen de codes wellicht wat afwijken dan, maar het gaat hier om het principe.
En high-tech is natuurlijk nog steeds welkom dus aarzel niet om hier wat toepassingen te delen :)
Pagina: 1