Programmeren van de PIC Microcontrollers (9 / 10 stap)

Stap 9: Het lezen van een analoge waarde

Het programma kan tot nu toe een LED knipperen. Vervolgens laat geven het aantal input van de gebruiker. Wij zullen een potentiometer gebruiken om het maken van een analoog signaal dat de snelheid van de LED zal veranderen. De ADC neemt de spanning in een analoge en een digitale waarde-uitgang.

  1. Open in de browser project user.c onder bronbestanden
  2. Boven de InitApp-functie maakt u een nieuwe functievoid init_adc(void)
  3. Voer de volgende code om te initialiseren van de ADC-module
 /** * Initialize the Analog to Digital Converter. */void init_adc(void){ TRISAbits.TRISA1 =0b1; // set pin as input ANCON0bits.ANSEL1 =0b1; // set pin as analog ADCON1bits.VCFG =0b00;// set v+ reference to Vdd ADCON1bits.VNCFG =0b0; // set v- reference to GND ADCON1bits.CHSN =0b000;// set negative input to GND ADCON2bits.ADFM =0b1; // right justify the output ADCON2bits.ACQT =0b110;// 16 TAD ADCON2bits.ADCS =0b101;// use Fosc/16 for clock source ADCON0bits.ADON =0b1; // turn on the ADC} 
  1. Vervolgens maakt een andere functie onmiddellijk na genaamduint16_t adc_convert(uint8_t channel)
 /** * Preform an analog to digital conversion. * channel The ADC input channel to use. * The value of the conversion. */ uint16_t adc_convert(uint8_t channel){ ADCON0bits.CHS = channel; // select the given channel ADCON0bits.GO =0b1; // start the conversion while(ADCON0bits.DONE); // wait for the conversion to finish return(ADRESH<<8)|ADRESL; // return the result} 
  1. Voeg de lijn toe in de InitApp-functieinit_adc()
  2. Voeg het prototype in het bestand user.huint16_t adc_convert(uint8_t);
  3. Belangrijkste overeenkomen met de volgende wijziging:
 voidmain(void){ uint16_t adc_value; // variable to hold ADC conversion result in /* Configure the oscillator for the device */ ConfigureOscillator(); /* Initialize I/O and Peripherals for application */ InitApp(); TRISAbits.TRISA0 =0; // set pin as output while(1) { LATAbits.LATA0 =0; // set pin LOW adc_value = adc_convert(1); // preform A/D conversion on channel 1 wait_ms(adc_value>>2); // wait 0.5 seconds LATAbits.LATA0 =1; // set pin HIGH adc_value = adc_convert(1); // preform A/D conversion on channel 1 wait_ms(adc_value>>2); // wait 0.5 seconds }} 
  1. Bouwen en de code downloaden. Als je de POT draaien de LED knippert de snelheid moeten wijzigen

Gerelateerde Artikelen

Hoe te programmeren van een PIC Microcontroller & lezen een Encoder

Hoe te programmeren van een PIC Microcontroller & lezen een Encoder

Inleiding: van elektronisch speelgoed & games magnetrons, microcontrollers bevinden zich zowat overal deze dagen! Maar hoe kunnen we deze kleine computers werken voor onze eigen elektronica projecten maken? Dat is waar deze tutorial komt - met gedeta
Programmeren van de PIC met Arduino

Programmeren van de PIC met Arduino

Dit is gewoon een andere "show en tell", maar nogmaals, er zijn gerber bestanden enzovoort opgenomen.Dit schild Arduino is een versie van de PCB van een circuit ontworpen door Rhys Weatherley. Wanneer gebruikt in combinatie met twee arduino sche
Met behulp van Bootloaders PIC Microcontrollers

Met behulp van Bootloaders PIC Microcontrollers

In deze eerste video zullen we kijken naar de hardware aansluiting, alsmede enige korte informatie over de werking van bootloaders.Hieronder vindt u de link voor de kleine bootloader:http://www.etc.ugal.ro/cchiculita/software/picbootloader.htmIk vero
Inzicht ICSP voor PIC Microcontrollers

Inzicht ICSP voor PIC Microcontrollers

programmeren microcontrollers is niet moeilijk. Bouwen van een programmeur maakt een geweldige eerste elektronica project. Het doel van dit instructable is om uit te leggen van de eenvoudige 'in circuit serial programmeren' methode gebruikt met Micro
Een LED dobbelsteen met behulp van een PIC 16F84 (of 16F88)

Een LED dobbelsteen met behulp van een PIC 16F84 (of 16F88)

Dit is een opnieuw afdrukken van een project dat ik een aantal jaren geleden maakte-ik was trawlvisserij het web, en ontdekte dat anderen had geboekt, dus heb ik besloten om de details hier op instructables.com - zodat anderen kunnen profiteren.Veel
Inleiding tot de PIC Microcontrollers

Inleiding tot de PIC Microcontrollers

een minimum van wat je nodig hebt om te beginnen bij het programmeren van de PIC micros voor gebruik in elektronica projecten (Robotica, etc)Stap 1: Wat je nodig hebt voor het project Opmerking: het lijkt erop dat als u windows XP hebt, er is geen vr
Leuk met de vergadering van de PIC - aflevering 1

Leuk met de vergadering van de PIC - aflevering 1

Terug in de olden dagen, wanneer mannen waren mannen en diskettes waren enorm, we geprogrammeerd de eerste microprocessor in assembler - en wij graag gezien dat die manier. Nu dat ik met pensioen ben besloten heb ik om opnieuw die dagen van yore en s
Stripboard Arduino schild voor het programmeren van ATtiny45 en ATtiny85

Stripboard Arduino schild voor het programmeren van ATtiny45 en ATtiny85

dit instructable (ingevoerd in de wedstrijd van de uitdaging van de Arduino - u kunt stemmen voor het bovenstaande) toont hoe te maken van een klemmenstrook Arduino schild voor het programmeren van ATtiny45 of ATtiny85 microcontrollers met een Arduin
Leuk met de vergadering van de PIC - aflevering 13

Leuk met de vergadering van de PIC - aflevering 13

Een paar maanden geleden overwoog ik maken een capaciteit meter met behulp van de PIC. Ik deed wat onderzoek op het web en verschillende ontwerpen uitgecheckt. Dan maakte ik de fout van het controleren van eBay om te zien hoe veel zou kosten. De vers
Leuk met de vergadering van de PIC - aflevering 8

Leuk met de vergadering van de PIC - aflevering 8

Ik heb enkele interessante temperatuurveranderingen meegemaakt in mijn leven met inbegrip van slechts een paar jaar geleden waar wij Stel een recordhoogte eendaagse en stel vervolgens een recordminimum de volgende dag. De meest interessante ervoer ik
Leuk met de vergadering van de PIC - aflevering 7

Leuk met de vergadering van de PIC - aflevering 7

Hebt u ooit gewenst dat je had een wekker die zou u wakker te maken om de paar minuten zodat kon u iets snel doen en ga dan terug om te slapen? Nope, mij hetzij. Maar in de wereld van de microcontroller, kan een dergelijke functie zeer handig. Wij we
Leuk met de vergadering van de PIC - aflevering 6

Leuk met de vergadering van de PIC - aflevering 6

Eens in de zoveel tijd ik beginnen met de bedoeling iets concreets te doen en dan krijg helemaal afgeleid door andere dingen. OK, dus het gebeurt veel. Het goede nieuws is dat het heeft niets te maken met mijn gevorderde leeftijd. Als ik wil om te ze
Leuk met de vergadering van de PIC - aflevering 24

Leuk met de vergadering van de PIC - aflevering 24

Wanneer ik was gestationeerd overzee terug in de vroege jaren 1970's er waren twee dingen goedkoop beschikbaar die meest militaire kerels vond: stereoapparatuur en drank. Nee, dit Instructable is niet over een PIC-aangedreven huis distilleerderij. So
Programmeren van een ATtiny2313 met Aceduino

Programmeren van een ATtiny2313 met Aceduino

Wat is een ACEDUINO? Het is de Filippijnse Arduino-kloon. Zie foto 2 en 3.Citaat uit vallen Elektronika:Als u reeds hebt geprobeerd heb je gevonden uit kunt u niet de ATTiny chips in de Arduino. Dit is omdat het niet de boormonsters voor de chips. Ee