Sida 1 av 1

Enklaste sättet att bygga A/D och D/A omvandlare?

Postat: 28 augusti 2014, 14:39:02
av Al_Bundy
Hej!

Jag tänkte nämligen börja med något riktigt enkelt. Mathworks har gått ned på knä inför store Arduino och gett sitt stöd. Det innebär att man kan blockprogrammera en Arduino idag utan att ens hålla på med kod.

Det finns en polack på tuben som visade hur man integrerade Arduino drivrutiner med just simulink, men det går alldeles för fort och det finns ingen logik in det hela hur man går till. Man står mest bara som ett frågetecken.

Film:


Fördelen med att just integrera bibliotek i Simulink är att man bygger in en A/D eller D/A konverterare i själva CPU:n, men i mitt fall så klarar jag inte ens av det.

Därför fick jag en idé om man kanske ska programmera en enskild liten krets som just är anpassat för en viss t.ex stepper motor eller temperaturgivare, och sedan reglertekniken gör man med arduino?

Jag har en jätteenkel kod här som jag försökte skapa ett block i Simulink via S-fuction builder.

Kod: Markera allt

#include <Stepper.h>
 
int in1Pin = 12;
int in2Pin = 11;
int in3Pin = 10;
int in4Pin = 9;
 
Stepper motor(512, in1Pin, in2Pin, in3Pin, in4Pin);
 
void setup()
{
  pinMode(in1Pin, OUTPUT);
  pinMode(in2Pin, OUTPUT);
  pinMode(in3Pin, OUTPUT);
  pinMode(in4Pin, OUTPUT);
 
  motor.setSpeed(20);

}
 
void loop()
{
motor.step(40);
}
Men även den koden gick inte komplimera, tyvärr.

Då undrar jag om det är ett smart sätt att programmera enskilda kretsar som ska omvandla digitala eller analoga signaler från givare eller CPU, eller till givare eller CPU?

Vi säger att jag har temperaturgivaren DS18B20 och en steppermotor 28BYJ-48 som har H-bryggan ULN2003. Både dessa har jag bibliotek till som fungerar perfekt med Arduino.

Eller vad tycker ni?

Min tanke med det hela är att jag kör själva reglertekniken via Simulink och programmerar analoga och digitala signaler, och sedan A/D- och D/A-omvandlare som tolkar om dessa signaler.
Att reglera system med enbart skriva C-kod är lite nog jobbigt för mig, nu när jag har gått en elektronikkurs i reglerteknik. :)

Re: Enklaste sättet att bygga A/D och D/A omvandlare?

Postat: 28 augusti 2014, 17:27:46
av sodjan
AD omvandlare har alla processorer inbyggt. Normalt upp till 10 bitar.
AD med fler bitar finns färdiga externa IC. Det är *väldigt* svårt
att själv bygga en ADC från scratch med 10 bitar eller mer!

Samma sak gäller i princip för DAC, enkla med upp till 5-6 bitar
kan man bygga med lösa komponenter, men sedan så är det
färdiga kretsar som gäller.

Re: Enklaste sättet att bygga A/D och D/A omvandlare?

Postat: 28 augusti 2014, 17:45:14
av Al_Bundy
Så det finns färdiga kretsar till t.ex DS18B20 temperatursensor?
Blir så så himla svårt att integrera arduino bibliotek i Simulink.

Re: Enklaste sättet att bygga A/D och D/A omvandlare?

Postat: 28 augusti 2014, 20:12:27
av Nisse
DS18B20 är digital och behöver ingen A/D.

Re: Enklaste sättet att bygga A/D och D/A omvandlare?

Postat: 28 augusti 2014, 20:34:30
av Al_Bundy
Just ja! Det är den!

Men ändå behöver man ett bibliotek för att just läsa av den. Är det inte så att den skickar information i t.ex HEX?

Re: Enklaste sättet att bygga A/D och D/A omvandlare?

Postat: 28 augusti 2014, 20:51:09
av Nisse

Re: Enklaste sättet att bygga A/D och D/A omvandlare?

Postat: 28 augusti 2014, 20:53:10
av Al_Bundy
Jo, jag har jobbat med DS18B20 förut och lyckats att kunna läsa av, men jag har inte direkt förstått varför man ska ska ha bibliotek till just denna om den redan skickar ut digitala signaler.

Vad gör biblioteket? Omtolkar dessa signaler till siffror?

Re: Enklaste sättet att bygga A/D och D/A omvandlare?

Postat: 28 augusti 2014, 21:27:46
av Nisse
Det måste ju finnas ett program som läser av sensorn, eller vad menar du?
Biblioteket är ju en samling funktioner/program som är färdiga för att prata med sensorn så att du slipper skriva den koden själv.
Läser du databladet så ser du hur sensorn kommunicerar (1-wire).

Re: Enklaste sättet att bygga A/D och D/A omvandlare?

Postat: 28 augusti 2014, 21:44:55
av Al_Bundy
Jag har läst databladet.
Jag trodde att ett bibliotek omvandlade siffror så modulen kunde förstå.

Typ om modulen säger 0xf4545 så kanske det betyder 20 grader C.

Men då vet jag :)

Re: Enklaste sättet att bygga A/D och D/A omvandlare?

Postat: 1 september 2014, 18:19:38
av LaRdA
Ett tips är att öppna biblioteket och läsa programmet för att förstå vad det gör.

Re: Enklaste sättet att bygga A/D och D/A omvandlare?

Postat: 5 september 2014, 09:32:33
av Al_Bundy
Jag ska försöka ge mig på det också. Är inte hi-pro när det gäller läsa någon annans C eller C++ kod.
Jag är ofta en person som "learn by doing". Jag kan inte studera annars.

Re: Enklaste sättet att bygga A/D och D/A omvandlare?

Postat: 5 september 2014, 09:36:17
av Icecap
Tyvärr Al, du är inte en "learn by doing"-person.

Du är en "learn nothing by <whatever>".
Du kan inte tillgodogöra dig verklig och praktisk information, du ignorerar information du får och du avvisar annan vital information.

Re: Enklaste sättet att bygga A/D och D/A omvandlare?

Postat: 5 september 2014, 09:55:31
av Al_Bundy
Ta och drick lite kaffe. :wink:

Du vet inte hur jag jobbar som när det gäller studier.

Re: Enklaste sättet att bygga A/D och D/A omvandlare?

Postat: 5 september 2014, 10:36:27
av TomasL
Möjligt, men vi märker en hel del, baserat på dina inlägg.

Re: Enklaste sättet att bygga A/D och D/A omvandlare?

Postat: 5 september 2014, 10:42:16
av Al_Bundy
För att vara rättvis så säger jag att det ligger en sanning i det ni säger. Men ni tar gärna i också, vilket är en överdrift.

Just nu håller jag exempelvis på att lära mig använda Simulinks arduinobibliotek. Jag ska skicka ett värde från en UNO till en MEGA. Mega har jag programmerat med Simulink och gjort en enkel process som ska bara räkna ut och skicka tillbaka ett värde till UNO. UNO:n har jag programmerat med klassisk processing-språket.