AVR Assembler Övningsexempel 9 (6 / 7 steg)

Steg 6: Low-pass filter och spänning förstärkare



För att rensa upp ljudet lite och göra våra knappsatsen fungerar bättre vill vi lägga till ett par low-pass filter. Dessa filtrerar bort högfrekventa brus och tillåta lågfrekventa signalen passera. I huvudsak sättet att göra detta är helt enkelt att lägga till en 68 pf kondensatorn mellan våra analog ingång och marken och även en 0.1 microfarad (dvs. 104) kondensator mellan våra PD4 (INT0) avbrott och marken. Om du spelar med dessa samtidigt trycka på knapparna på knappsatsen kommer du att kunna se vad de gör.

Nästa vi vill göra en spänning förstärkare. Det visar sig att den nedersta tangentraden på knappsatsen (liksom nyckeln återuppringning) lägger ut för låg på en spänning att resa på INT0 avbryta. Den analoga ingången är tillräckligt känslig för att läsa de låga spänningarna från dessa nycklar men vår avbrott stift är inte att få en bra nog stigande kanten att avbryta när vi trycker de nycklarna. Därför vill vi ha några sätt att se till att en fin spänning stigande kanten träffar PD4 men samma lågspänning träffar ADC0. Detta är en ganska kämpigt eftersom båda signalerna kommer från samma utgång tråd av våra knappsats. Det finns ett antal sofistikerade sätt att göra detta, men vi kommer inte att använda våra knappsatsen längre efter denna tutorial så låt oss bara kluge tillsammans en metod som fungerar (knappt).

Du bör först koppla in en extern knapp att ersätta INT0 mellanjobbet och kontrollera displayen genom att hålla en knapp på knappsatsen och klicka på. Detta har färre knappsatsen problem och gör att du kan vara säker på att dina spänningar är korrekt på knappsatsen utseende-upp bord. När du vet knappsatsen är wired korrekt då bli av med knappen och sätta på INT0 avbryta tillbaka. Det finns några allvarliga buller och spänning frågor styr knappsatsen detta sätt så det är bra att veta att allt fungerar så att framtida problem kan isoleras till INT0 nyckel.

När du binder din knappsats och förstärkaren spänning, är det mycket troligt att samma motstånd värden som jag har använt inte kommer att fungera. Så måste du göra några experiment för att få värden som arbetar för dig.

Om man tittar på diagrammet jag har bifogat till detta steg kommer du se hur spänningen förstärkaren kommer att fungera. Vi använder några motstånd och två transistorer. Sätt transistorerna arbete (se datablad!) är det finns en lägsta spänning som du måste skriva in till bas stift på transister (det mellersta stiftet) som kommer att mätta den och låta nuvarande mellan samlare stiftet och utsändaren pin. När det gäller 2N3904 transistorn är att vi använder här spänningen 0.65V. Nu tar vi den spänningen från vår produktion från knappsatsen och vi vill inte ändra på det produktionen så vi kommer att sätta ett stort motstånd mellan utdata från knappsatsen och basen för den första transistorn (jag använde 1Mohm). Jag har märkt detta som R_1 i diagrammet. Då vi vill ställa in en spänningsavdelare så att basen av transistorn är "nästan" på 0,65 volt redan och bara en liten pytteliten bit mer kommer att skjuta den över toppen och mätta den. Att teeny pytteliten bit kommer från produktionen av knappsatsen när vi trycka på en knapp. Eftersom den lägre knapparna på knappsatsen bara lägger ut en liten spänning måste vi vara mycket nära mättnad redan i att vara tillräckligt. Spänningsavdelare resisters märks R_a och R_b i diagrammet. Jag använde R_a = 1Mohm och R_b = 560Kohm men det är nästan säkert att du kommer att behöva leka med dessa nummer för att få det rätt för din setup. Du kanske vill ha en vägg i närheten att banka huvudet mot och två eller tre glas scotch på hand (jag skulle rekommendera Laphroaig--dyrt, men värt det om du röker. Om saker och ting blir riktigt sinnessjuk, sedan bara få en kanna BV och bosätta sig i för natten)

Nu kan titta på hur transistorerna kommer att få oss en fin stigande kant kommer att nyckeln INT0 och generera våra knapptryckning avbrott. Först låt oss titta på vad som händer när jag är inte en tangenttryckning. I så fall är den första transistorn (märkt T1 i diagrammet) avstängd. Så flödar ingen aktuell mellan kollektor och emitter stiften. Thus basen av andra transistorn (märkt T2) kommer att dras höga och således kommer det mätta så att nuvarande mellan dess stift. Detta innebär att utsläppare av T2 kommer att dras låg eftersom den är ansluten till samlaren som själv är ansluten till marken. Således de utdata som går till vår INT0 knapptryckning avbrott stift (PD4) kommer att vara låg och det blir inga avbrott.

Nu vad som händer när jag trycker en nyckel? Ja då basen av T1 går över 0.65V (vid lägre nycklarna det bara knappt går över!) och sedan strömmen får flöde som kommer att dra basen av T2 till låg spänning och detta kommer att stänga av T2. Men vi ser att när T2 är avstängd, sedan produktionen är drog höga och därmed får vi en 5V signal ska vår INT0 stift och det kommer att orsaka ett avbrott.

Märka vad resultatet är här. Om vi trycka på knappen 1, vi få 5V går till PD4 utan att väsentligt ändra utdata kommer att ADC0, och viktigare, även om vi trycker Asterisk, 0, Hash eller ring igen, vi får också en 5V signal ska INT0 och orsakar ett avbrott! Detta är viktigt eftersom om vi gick bara direkt från knappsatsen utdata till INT0 stift, de nycklarna som genererar nästan ingen spänning och de kommer inte vara tillräckligt för att utlösa att avbryta pin. Vår spänning förstärkare har löst detta problem.

Se Steg
Relaterade Ämnen

AVR Assembler Övningsexempel 7

Välkommen till Övningsexempel 7!Idag vi första visar hur du rensar en knappsats och sedan visar hur du använder Analog ingång hamnarna för att kommunicera med knappsatsen.Vi kommer att göra med avbrott och en enda tråd som indata. Vi kommer tråd knap...

AVR Assembler Övningsexempel 4

Välkommen till tutorial nummer 4!I den här guiden kommer vi att bygga en krets som kommer att simulera rullning av två tärningar. Sedan kommer vi först skriva en brute force-program som gör jobbet. Sedan kommer vi förenklar det programmet på olika sä...

AVR Assembler handledning 11

Välkommen till handledning 11!I den här korta guiden kommer vi slutligen att bygga den första delen av vårt sista projekt.Det första du bör göra är att gå till det allra sista steget i denna tutorial och titta på videon. Sedan komma tillbaka hit. [pa...

AVR Assembler Tutorial 1

Jag har beslutat att skriva en serie tutorials om hur man skriver assembler program för den Atmega328p som är mikrokontroller används i Arduino. Om människor förblir intresserad fortsätter jag att lägga ut en en vecka eller så tills jag får slut på l...

AVR Assembler handledning 6

Välkommen till Tutorial 6!Dagens handledning kommer att vara kort där vi kommer att utveckla en enkel metod att kommunicera data mellan en atmega328p och en med två portar ansluta dem. Vi kommer ta sedan tärningarna rullen från läraren 4 och registre...

AVR Assembler handledning 8

Välkommen till Tutorial 8!I denna kort tutorial ska vi ta lite av en skenmanöver från att införa nya aspekter av assembler programmering att visa hur man flytta våra prototyper komponenter till ett separat "tryckta" kretskort. Anledningen är att...

AVR Assembler Tutorial 2

Denna handledning är en fortsättning på "AVR Assembler Tutorial 1"Om du inte har gått igenom Tutorial 1 bör du sluta nu och göra att man först.I den här guiden kommer vi fortsätta vår studie av assembler programmering av den atmega328p som använ...

AVR Assembler handledning 10

Välkommen till handledning 10!Ledsen att det tog så lång tid för att få denna nästa avbetalning ut men detta är en ganska hektisk tid på året. I alla fall, är här det!Vi har kommit långt och du förmodligen redan är kompetenta nog att skriva många int...

AVR Assembler handledning 5

Idag kommer vi att ta en närmare titt på de olika minnesplatserna i Atmega328p mikrokontroller och se om vi bättre kan förstå hur saker lagras, där de lagras och hur pekare och uppslagstabeller fungerar.Handledningen kommer att delas upp i två delar....

AVR Assembler handledning 3

Välkommen till tutorial nummer 3!Innan vi börjar vill jag göra en filosofisk punkt. Inte vara rädd för att experimentera med kretsar och den kod som vi konstruerar i dessa tutorials. Ändra sladdar runt, lägga till nya komponenter, ta komponenter ut,...

Utveckling styrelsen för Attiny84 mikrokontroller

Detta är en utveckling styrelse för Attiny84 mikrokontroller. Tha Attiny84 chip har 11 pins adresserbara med Arduino IDE, 8k flashminne för lagring av program och 512 byte ram tillgängligt för variablerna stack och program.En funktion av den Attiny84...

Hur man ladda program till en Arduino UNO från Atmel Studio 7

I denna korta Instructable kommer vi att lära sig att ladda ett program till en Arduino UNO ombord med Atmel Studio istället för Arduino IDE. Detta är användbart när du behöver utveckla ett program med fler advance funktioner eller på ett annat språk...

MRETV - Video, ljud och mycket mer från en standard Arduino!

MRETV - Video, ljud och mycket mer från en standard Arduino!Nu uppdaterad för Arduino 1.6.6 November 2015!Använd endast två resistorer och två dioder för att generera full skärm video. Text 47 x 29 8 x 8 tecken, dubbla vertikala upplösningen (47 x 57...

Enklaste AVR parallell port programmerare

Hej, är detta min första instructables, som handlar om avr programmerare. Detta är den enklaste krets med vilka AVR (Atmega serie, Attiny serien, AT90S serien) microcontrollers kan programmeras. Det finns en hel del programmerare, men detta är enkel...

Älskling, jag krympte Arduino: flytta från Arduino till ATtiny och skriva din kod i ren AVR-C

Arduino är en stor hård- och mjukvaruplattform, men med alla dess funktioner är det också lite uppsvälld och ofta behöver du bara en liten del av alla funktioner. Projektet kräver ibland för att ha mindre och billigare enheter. Vad du behöver är ATti...

Mitt svar på WS2811 med en AVR sak

första off - vill sägaBra om du Alan Burlison.Detta är inte menat att uppsamlare du på något sätt. Din kod gjorde det det måste göra. Stor framgång. Min första reaktion i en forum kommentar var faktiskt riktat mot folk som när det gäller icke-arbetan...

Fattig mans AVR speldosa

detta är en enkel AVR speldosa, kostar ca 10$ för att bygga.DISCLAIMER: Detta projekt är vad man skulle kalla en SMOP, "en enkel fråga om programmering". Det innebär att det är av trivial komplexitet men långa... så om du kan tolerera tristess i...

Montering av Dragon Rider 500 för användning med AVR Dragon

inte länge sedan företaget Atmel kom ut med ett bra verktyg för användning med AVR microcontrollers kallas AVR Dragon. Denna lilla USB-enhet ger proffs och amatörer både förmågan att använda: I System programmering (ISP), JTAG, felsöka tråd och hög s...

16-nyckel knappsatsen avkodning med en AVR MCU

detta instructable visar dig hur gränssnittet en 16-nyckel knappsats till din AVR microcontroller och läsa nyckeln när en tangent är nedtryckt. Jag ska presentera knappsatsen först, sedan 74HC922 16-nyckel dekodern IC som pin-saving mekanism, sedan s...