MATLAB till PIC seriellt gränssnitt (1 / 1 steg)

Steg 1: Kod med kommentarer



nedan är lite kod som jag klistrat in. Hämta txt-filen om du vill att koden. Se bilder för hjälp med det seriella gränssnittet. En visar metoden 22kohm resistor för att ansluta den seriella porten till en bild. Den andra visar max232 metoden för att ansluta den seriella porten till en bild.

Med seriella anslutningar det vanligaste problemet inte är att se datorn och PIC att samma bithastighet, så till att du gör det (som det görs i min kod).
Kontrollera också att du har anslutit alla GNDs tillsammans (PIC, MAX232 och dator GNDs alla anslutna).
Se också till att du använder rätt kondensator värdet för max232 (max232 vs max232A), se diagram i instructable för korrekta värden.
Se också till att datorn skickar de värden du tycker det sänder. För att göra detta, stick ledningar till DB9 kabeln att göra en följetong loopback. Detta gör att datorn får tillbaka exakt vad det har precis skickat. Här är ett diagram över hur tråd upp detta:




Så gör din matlab-kod gör en seriell läsa rätt efter den seriella skriva.
Du kan också använda gratis seriell port övervakning programvara att makesure seriell kommunikation är occuring ordentligt (här är ett exempel http://www.batchconverter.com/FreeSerialPortMonitor-download-20643.shtml).

Hursomhelst, här är koden:

%##########################################################################
%########################--MATLAB CODE--###################################
%##########################################################################
% Här koden förutsätter att du har MATLAB ansluten till en PIC mikrokontroller via datorns serieport genom en
% MAX232 IC _OR_ om du inte använder en max232 allt du behöver är en 22 kohm begränsa motstånd på
% den seriella linje som ansluter datorn till PIC (aka Pin 3 och/eller Pin 2, se nedan).
% Stift 3 eller DB-9 porten är TX linjen, aka linjen som bär data från PC till PIC.
% Stift 2 bär seriella data åt andra hållet (PIC till PC) om du vill göra detta.
Stift 5% är DB-9 marken pin som du bör använda för att ansluta PC marken med PIC marken.
% Kodas detta också förutsätter att du använder COM3 för seriell kommunikation med PIC.

SerPIC = serial('COM3'); % <--ändra detta på lämpligt sätt
Ange (SerPIC, "Hastighet", 9600, "DataBits', 8,"paritet', 'ingen', 'StopBits', 1, 'FlowControl', 'ingen');
fopen(SerPIC); % - Öppna den seriella porten till PIC

fprintf (SerPIC, '%s', ' 003'); % - Skicka en _three_ siffra sträng till PIC med ingen terminator ('%s')
%--003 = 00000011 i binär, så först två lysdioder av PIC tänds

fclose(SerPIC) %--stänga den seriella porten när du är klar
Delete(SerPIC)
Rensa SerPIC

% ANMÄRKNING 1:
% om MATLAB någonsin ger en serial fel, det kommer troligen säga "kan inte öppna serieporten" nästa gång du
% springa programmet, så du måste starta om MATLAB
% ANMÄRKNING 2:
% numret måste alltid skickas som ett tresiffrigt tal eftersom av någon anledning inte kunde jag få min bild att ta emot
% antal när det inte var en angiven längd (se PIC-kod: DEC3)

%==========================================================================
%==========================================================================

'##########################################################################
'#############################--PIC16F877 CODE--###########################
'##########################################################################
"Denna kod förutsätter att du har PIC16F877 in med en LED på varje rad i Port D (8 linjer).
"Detta sätt PIC tänds olika mönster av lysdioder enligt skickar via följetong från MATLAB.
"Varje LED bör vara i serie med en 470 ohms motstånd (se bild nedan)
'_
' '
""---Ledde---\ 470 ohm
'Bild' >---/ \/\/\---GND
' '------LED---/
'---'
'
"Denna kod förutsätter också att du har TX fodra av den DB-9 seriella porten ansluten till stift 0 port C (PORTC.0)

Inkluderar "bs2defs.bas" "har vissa nyttiga saker i den

' Definiera OSC 4 ' Oscillator hastighet i MHz, detta behövs inte antar jag
SerI var PORTC.0 ' göra ett lätt namn att hänvisa till den seriella pin

TRISD = % 00000000 ' in PortD som en utdataport
PortD = % 00000000 "ställer in LED porten till alla nollor

GetGhost:
Serin2 SerI, 84, (DEC3 B0) "få ett tresiffrigt nummer från seriella stift och Lägg den i B0 variabl
PortD = B0 "in fodrar av PortD enligt denna tresiffrigt nummer
Gå till GetGhost

'===========================================================================
'===========================================================================

Se Steg
Relaterade Ämnen

Intro till PIC-mikrokontroller

ett minimum av vad du behöver för att få igång programmering PIC micros för användning i elektronik projekt (robotics, etc)Steg 1: Vad du behöver för projektet Obs: verkar som om du har windows XP, det finns ingen gratis PIC programmerare programvara...

Lägg till infraröd gränssnitt för din Raspberry Pi GPIO

IntroduktionJag har många fjärrkontroller liggande. Några av dessa fjärrkontroller används inte längre eftersom apparaten de kontrollerade har gått kaputt och kastades. Jag undrar om fjärrkontrollen kan kommunicera med Raspberry Pi. Jag vill dessutom...

Gitarr till AV-mottagare gränssnitt

har du någonsin velat förstärka din elgitarr genom att koppla till en AV-Receiver (stereon)? Någonsin försökt riggning upp en 1/4" mono instrument plugg till RCA patchkabel? Så du troligtvis blev besvikna när det inte fungerade. De flesta moderna kon...

Hur du lägger till crack s etc till pic's med GIMP

Steg 1: vad du behöver Klicka här för att få >GIMP<Du kan använda andra programmen gimp är den vi kommer att använda.Bliss tapet eller något du vill ha finns iC:\WINDOWS\Web\Wallpaperen bild med en spricka & gedigen bakgrundtålamod& kommente...

Rotary telefon uppringning till en Arduino-gränssnitt

en gammal rotary telefon kan användas för flera olika syften i din Arduino projekt - använda den som en ny enhet, eller använda Arduino gränssnittet en rotary telefon till din dator.Detta är en mycket grundläggande guide som beskriver hur gränssnitte...

Kul med PIC församling - Episode 13

För några månader sedan övervägde jag att göra en kapacitans mätare med PIC. Jag gjorde en del efterforskningar på nätet och kollat in olika mönster. Sedan gjorde jag misstaget att kolla eBay för att se hur mycket en skulle kosta. De inre styrelsen v...

Kul med PIC församling - Episode 8

Jag har upplevt några intressanta förändringar i temperatur under min livstid inklusive en bara några år sedan där vi ställa en rekordhög en dag och sedan ange rekordlåga nästa dag. Den mest intressanta jag upplevt var länge sedan medan jag var i Son...

HackerBoxes 0005: LED pixlar, 2D matris, 4 x 4 x 4 kub och Bluetooth

Få LED ut! Denna månad, arbetar abonnenter till HackerBoxes med lysdioder serveras tre olika sätt. Först är adresserbara LED galenskap med WS2812-baserade RGB pixlar. Det andra sättet är i en tvådimensionell matris baserat på MAX7219 seriellt gränssn...

Remote Control Pleo med Wii Nunchuck

detta instructable beskriver hur man fjärrkontroll Pleo (en vänlig robotic dinosaurie: http://www.pleoworld.com) med gester med en fickformat setup. Du kan utöka de flesta delar av detta instructable att styra andra typer av robotar. Här är en video...

Furby Hijack

jag tog kontroll över en furby kroppen med hjälp av en PIC16F877 mikrodator. Videor på sista steget.Furby inbyggda sensorer och ställdon:ljussensor,IR-sensor,IR-sändare,tungan touch sensor,magen touch sensor,mikrofon,högtalare.Den furby största (och...

HackerBoxes 0008: Clockwork

[cue temamusik]Urverk: Denna månad, utforskar HackerBox hackare tid, klockor och tidtagning. Det finns ingen tid som nuvarande. Detta Instructable innehåller information för att arbeta med HackerBoxes #0008.HackerBoxes är den månatliga box prenumerat...

Rotary dialer PIC gränssnitt

jag har hittat mig själv med ett överflöd av roterande telefoner. Faktiskt, är de överallt ser jag. I hopp om att jag en dag kan se mindre av dem, jag har börjat ta dem isär och återanvändning av delar för andra ändamål.Av någon anledning fick jag de...

Kul med PIC församling - Episode 15

Ett av mina senaste projekt med byggnaden av en liten 2.1 förstärkare med några TDA power förstärkare marker som jag scrounged från en avgjutning av elektronik ombord. Eftersom jag var kunna avgöra hur jag ville styra saker, valde jag att använda ett...

Kul med PIC församling - Episode 17

Tillbaka i dåliga gamla dagar hade varje telefon företag en proprietära gränssnitt och ofta olika gränssnitt för olika telefoner i sin produktlinje. Dessa dagar, dock använder nästan varje telefon ett USB-gränssnitt, liksom många andra enheter. Genom...

PIC utveckling/testning styrelsen

här är en PCB design för en nakna ben PIC16F877 utveckling styrelse. Allt du behöver är en 4mhz kristall, två 22pf mössor, en 4.7 k motstånd, och åtta 470 ohm motstånd, en 7805 regulator (inte nödvändigtvis behövs, Läs nedan) och några lysdioder (du...

24 kanal USB ansluten LED Controller, upp till 1A per kanal

Denna enhet är avsedd att vara en mångsidig hög-aktuell LED-controller, med förmåga att sjunka eller / och källa strömmar upp till 1A per kanal med försvinnande av upp till 2.5W per kanal. De olika tröjor och transistor placering tillåta att enheten...

Bluetooth trådlös spänning Meter med Wiimote + Pic Chip + AutoIt

i denna tutorial jag ska visa dig hur du kan skicka spänningsvärden till datorn med en Pic chip, Wiimote, och Autoit3 skriptspråk. Processen fungerar genom att binda en pic chip till knappen kuddar av en wiimote. Sedan använda pic marker Analog till...

Lägg till Bluetooth till en LCD-display med seriell in

LCD-skärmar med seriell in kan uppgraderas till Bluetooth med en JY-MCU Bluetooth Serial Port. En bra anledning att göra detta är så displayen kan användas med en Android-telefon eller surfplatta. Ett enkelt Android program skapats med MIT App Invent...

PIC 12F675 programmerare/OscCal återställning/testare

En av mina kretsar att jag bygga ganska ofta (20-40 i taget), använder en PIC 12F675. Jag hade följande frågor:De brädor som jag gör, har inte i-krets programmering funktioner. Detta är att möjliggöra en liten PC board layout. Bilder måste således pr...