Permalänk
Medlem

Testkörning!

Efter ett par hektiska veckor har jag nu startat en kort men välbehövlig semester innan skolan drar igång igen. Kortet är uppkopplat och kör nu ett litet testprogram som bara växlar mellan 0 V, 5 V och 12 V i tur och ordning. Buck Convertern fungerar klockrent!

Tyvärr har jag lite problem med USB-gränssnittet. Kommunikationen fungerar fint när ett program väl är inne, men jag lyckas inte programmera Atmegan via USB, så för att programmera kretsen kör jag för tillfället en "Arduino as ISP" kopplad till ICSP-pinnarna. Lite meckigt men det fungerar iaf.

Nu återstår alltså bara själva programmet, men jag behöver skissa lite mer på det innan jag kör igång. Jag tänker mig två structer: En för inställningar (t.ex. fläktkurvor, PID-parametrar) och en annan för status (temperaturer, fläkthastigheter), som skickas mellan kontroller och PC. På PC-sidan tänker jag mig ett C#-program där jag kan se nuvarande status och ändra och skicka över inställningar till kontrollern.

Permalänk
Medlem

Nu var det riktigt länge sen jag skrev något här! Projektet har legat på is ett tag iom. skola och jobb som tar all min tid. Men nu lyser flitens lampa igen!

Jag har under veckan skrivit i princip hela programmet till mikrokontrollern och testat varje programdel isolerat - nu gäller det alltså bara att allting fungerar tillsammans! Detta är dock svårt att testa innan jag har en värdapplikation som kan skicka alla parametrar och kontrollord till kontrollern, så därför har jag nu kommit in på Windows-applikationen som ska sköta allt sådant.

För mikrokontrollern använder jag Atmel Studio och skriver i AVR C++. Detta är inte helt olikt Arduino men har mindre handhållning, grymt mycket bättre editor (baserad på Visual Studio) och massor med mer möjligheter. Jag har spenderat en hel del tid i Atmegans datablad för att luska ut vilka bitar som ska sättas i varje register för att t.ex. få ut en PWM-signal eller använda en Interrupt. Rekommenderas starkt för den som har en Arduino och lite tid över! Sjukt roligt att komma så nära hårdvaran och förstå vad som egentligen händer i Arduinos bibliotek.

För Windows-applikationen använder jag Visual Studio och Visual C#. En hel del UI-element saknas ännu (t.ex. rutor för max/min RPM och en Save-knapp), och hela "underredet" med seriekommunikation osv är ännu kvar att göra. Men det går framåt!

Permalänk
Medlem

Löste precis de sista buggarna (hoppas jag) och allting verkar fungera riktigt bra! Upptäckt en del designmissar som jag skulle fixat om jag byggde fler, men de påverkar inte funktionen särskilt mycket utan är nog bara min perfektionism som gnager.

  1. Spänningsmätningen på utgången brusar ganska mycket då jag dumt nog drog dem nära en av PWM-linorna.

  2. Jag kunde räknat varvtalen med en Counter istället för med interrupts och mikrosekunder som jag gör nu. Fast det finns iofs bara en 16-bitars Counter (och jag behöver två varvtal) så det kanske inte skulle blivit perfekt ändå.

  3. Temperatursensorn är inte stabil utan last, så jag måste koppla in en resistor mellan utgång och jord. Varför den gör så vet jag inte, det ska inte behövas enligt databladet. Nåja, jag ska nog kunna klämma in en liten SMT-resistor mellan pinnarna på baksidan!

1 och 2 gör att jag inte riktigt kan hålla varvtalet inom enstaka RPM, men för en fläktkontroller har det knappast någon betydelse. Precisionen på inställningen är ändå i steg om 25 RPM.
Allt som allt ett rätt lyckat projekt!

(röd prick = nuvarande status)

Permalänk