U ovom ćemo uputstvu spojiti FLEX senzor s ATMEGA8 mikrokontrolerom. U ATMEGA8 koristit ćemo 10-bitnu ADC (analogno u digitalnu pretvorbu) značajku za obavljanje ovog posla. Sada ADC u ATMEGA-i ne može uzeti ulaz veći od + 5V.
Što je Flex senzor?
FLEX senzor je sonda koja mijenja svoj otpor kad se mijenja svoj oblik. To je prikazano na donjoj slici.

Ovaj senzor koristi se za otkrivanje promjena u linearnosti. Dakle, kada je FLEX senzor savijen, otpor se drastično savio. To je prikazano na donjoj slici.

Sada ćemo za pretvaranje ove promjene otpora na promjenu napona upotrijebiti krug djelitelja napona. U ovoj otpornoj mreži imamo jedan stalni otpor i drugi promjenjivi otpor. Kao što je prikazano na donjoj slici, R1 je ovdje konstantni otpor, a R2 je FLEX senzor koji djeluje kao otpor. Srednja točka grane uzima se za mjerenje. Kada se otpor R2 promijeni, Vout se s njim linearno mijenja. Dakle, s ovim imamo napon koji se mijenja linearno.

Ovdje je važno napomenuti da je ulazni signal regulatora za ADC konverziju nizak od 50µAmp. Ovaj učinak opterećenja djelitelja napona zasnovan na otporu važan je jer struja povučena iz Vout napona-djelitelja povećava postotak pogreške, za sada ne moramo brinuti o učinku opterećenja.
Uzet ćemo dva otpornika i oblikovati djeliteljski krug tako da za 25Volts Vin, dobijemo 5Volt Vout. Dakle, sve što moramo učiniti je pomnožiti Vout vrijednost s "5" u programu kako bismo dobili stvarni ulazni napon.
Komponente potrebne
OPREMA: ATMEGA8, napajanje (5v), AVR-ISP PROGRAMER, JHD_162ALCD (16x2LCD), kondenzator 100uF, kondenzator 100nF (5 komada), otpornik 100KΩ.
SOFTVER: Atmel studio 6.1, progisp ili flash magic.
Kružni dijagram i radno objašnjenje
U krugu PORTD ATMEGA8 spojen je na podatkovni port LCD. Na LCD zaslonu 16x2 postoji 16 pinova ako postoji pozadinsko svjetlo, a ako nema pozadinskog svjetla, bit će 14 pinova. Može se napajati ili ostaviti igle stražnjeg svjetla. Sada u 14 pinova postoji 8 podatkovnih pinova (7-14 ili D0-D7), 2 pina za napajanje (1 & 2 ili VSS & VDD ili gnd & + 5v), treći pinski za kontrolu kontrasta (VEE - kontrolira koliko debeli znakovi trebaju biti prikazano) i 3 upravljačka zatiča (RS & RW & E).
U krugu možete primijetiti da sam uzeo samo dvije upravljačke igle. Kontrastni bit i READ / WRITE se ne koriste često, tako da se mogu kratko spojiti na masu. Ovo LCD postavlja u najveći kontrast i način čitanja. Samo trebamo kontrolirati ENABLE i RS igle da bi u skladu s tim slali znakove i podatke.
LCD veze s ATmega8 su sljedeće:
PIN1 ili VSS na zemlju
PIN2 ili VDD ili VCC do + 5v snage
PIN3 ili VEE na zemlju (daje maksimalni kontrast najbolji za početnike)
PIN4 ili RS (Registriraj odabir) na PB0 od uC
PIN5 ili RW (čitanje / pisanje) na zemlju (stavlja LCD u način čitanja olakšava komunikaciju za korisnika)
PIN6 ili E (Omogući) do PB1 od uC
PIN7 ili D0 do PD0 od uC
PIN8 ili D1 do PD1 od uC
PIN9 ili D2 do PD2 od uC
PIN10 ili D3 do PD3 od uC
PIN11 ili D4 do D4 od uC
PIN12 ili D5 do PD5 od uC
PIN13 ili D6 do PD6 od uC
PIN14 ili D7 do PD7 od uC
U krugu možete vidjeti da smo koristili 8-bitnu komunikaciju (D0-D7), međutim to nije obvezno, možemo koristiti 4-bitnu komunikaciju (D4-D7), ali s 4-bitnim komunikacijskim programom postaje pomalo složen, pa smo upravo išli s 8-bitnim komunikacija. (Također pogledajte ovaj vodič: 16x2 LCD sučelja s AVR mikrokontrolerom)
Dakle, iz pukog promatranja iz gornje tablice spajamo 10 pinova LCD-a na kontroler u kojem su 8 pinova podatkovne i 2 pina za kontrolu.

Napon na R2 nije potpuno linearan; bit će bučna. Za filtriranje kondenzatori buke postavljeni su preko svakog otpora u djeliteljskom krugu, kao što je prikazano na slici.
Ovdje je 1K pot za podešavanje točnosti ADC-a. Sada razgovarajmo o ADC-u ATMEGA8.
U ATMEGA8 možemo dati analogni ulaz na bilo koji od ČETIRI kanala PORTC-a, nije važno koji ćemo kanal odabrati jer su svi isti, odabrat ćemo kanal 0 ili PIN0 PORTC-a.
U ATMEGA8, ADC je 10-bitne razlučivosti, tako da regulator može otkriti osjet minimalne promjene Vref / 2 ^ 10, pa ako je referentni napon 5V, dobit ćemo digitalni priraštaj za svakih 5/2 ^ 10 = 5mV. Dakle, za svakih 5mV prirasta na ulazu imat ćemo priraštaj od jednog na digitalnom izlazu.
Sada moramo postaviti registar ADC-a na temelju sljedećih uvjeta, 1. Prije svega moramo omogućiti značajku ADC u ADC-u.
2. Ovdje ćemo dobiti maksimalni ulazni napon za ADC pretvorbu od + 5V. Tako možemo postaviti maksimalnu vrijednost ili referencu ADC-a na 5V.
3. Kontroler ima značajku pretvorbe okidača što znači da se pretvorba ADC-a odvija samo nakon vanjskog okidača, jer ne želimo da moramo postaviti registre da ADC radi u kontinuiranom slobodnom načinu rada.
4. Za bilo koji ADC, učestalost pretvorbe (analogna vrijednost u digitalnu vrijednost) i točnost digitalnog izlaza su obrnuto proporcionalne. Stoga za bolju točnost digitalnog izlaza moramo odabrati manju frekvenciju. Za normalni ADC sat postavljamo pretprodaju ADC-a na maksimalnu vrijednost (2). Budući da koristimo interni takt od 1 MHz, ADC će biti (1000000/2).
To su jedine četiri stvari koje moramo znati da bismo započeli s ADC-om.
Sve gore navedene četiri značajke postavljaju dva registra:


CRVENA (ADEN): Ovaj bit mora biti postavljen za omogućavanje ADC značajke ATMEGA-e.
PLAVO (REFS1, REFS0): Ova dva bita koriste se za postavljanje referentnog napona (ili maksimalnog ulaznog napona koji ćemo dati). Budući da želimo imati referentni napon 5V, treba postaviti tablicu REFS0.

ŽUTI (ADFR): Ovaj bit mora biti postavljen da bi se ADC neprekidno izvodio (način slobodnog rada).
PINK (MUX0-MUX3): Ova četiri bita služe za prepoznavanje ulaznog kanala. Budući da ćemo koristiti ADC0 ili PIN0, ne trebamo postavljati nikakve bitove kao u tablici.

SMEĐE (ADPS0-ADPS2): ova tri bita služe za podešavanje predskalara za ADC. Budući da koristimo pretkalar 2, moramo postaviti jedan bit.

TAMNO ZELENO (ADSC): ovaj bit postavljen za ADC da započne pretvorbu. Taj se bit može onemogućiti u programu kada moramo zaustaviti pretvorbu.
Povezivanje FLEX senzora s ATmega8 objašnjeno je korak po korak u dolje navedenom C kodu.
