Permalänk
Medlem

Pwm styrning 12v pi5

Hejsan!
Håller på med att åter använda en imac från 2010.
Har stoppat en raspberry pi i den.
Funderar hur jag kan styra 1 fläkt på 12v 0.9A med pi 5.

Orginal psu använs från imac så 12v 5v och 3.3v finns.

Tanken är att driva pi5 med 12v+power hatt för att få till 5.1v.

12v dras från nätagg till fläkt.

Men hur kan jag styra "pwm" pinnarna via pi5an?

Fläkten är 12v. 0.9A. 4 pins
Finns 3 fläktar men börjar med 1

Eller ska man lösa det med en arduino? Hur i så fall?

Permalänk
Medlem

Raspberry pi ska ha hårdvaru pwm på alla gpio pinnar, så det ska inte vara något problem. Frågan är bara hur du vill lösa det, C, python, eller färdig lösning?

Permalänk
Medlem
Skrivet av swesen:

Raspberry pi ska ha hårdvaru pwm på alla gpio pinnar, så det ska inte vara något problem. Frågan är bara hur du vill lösa det, C, python, eller färdig lösning?

Bra fråga.
Den som är mest effektivt å köra
Python känner jag till och C har jag bara kört på arduino.
Färdiglösning är ju nice om det finns, beroende på jobb/kostnad.

Permalänk
Medlem

Nu är jag embedded utvecklare så jag skulle kollat på C och då ser jag:
https://github.com/raspberrypi/linux/blob/rpi-6.1.y/drivers/p...
https://github.com/raspberrypi/linux/blob/rpi-6.1.y/include/l...

Raspberry pi nämner ett python lib som heter gpiozero:
https://gpiozero.readthedocs.io/en/latest/api_output.html#pwm...

För att styra en fläkt via PWM så behövs en 25kHz signal:
https://www.intel.com/content/dam/support/us/en/documents/int...

Permalänk
Medlem

Det finns fördelar med båda approacher.

Den mest uppenbara med Arduino är förstås att det alltid är najs med ett fristående system. Det blir mer robust i meningen att det det inte blir beroende av att mjukvaran på pajen funkar som den ska. Vet inte säkert, men det är nog svårt att garantera att GPIO-pinnen som styr PWM går permanent hög (och därmed tar upp fläkten till maxvarv) om det skulle balla ur när du kör det helt från pajen.

Vad det gäller fördelar med att köra det direkt från pajen är det ju givetvis enklare att styra det med aktuell CPU-temp eller last.

Överkurs är att kombinera, och det är nog så jag hade gjort. Hämta ärvärde från pajen, antingen polla via vcgencmd/seriekonsol, eller programvara som trycker ut det på en GPIO-pinne i lämpligt format. I fallet där det inte finns något ärvärde kickar en fallbackrutin på Arduinon in. Över-överkurs här kunde vara att reglera fallbacken på aktuell strömförbrukning.

Det finns garanterat färdiga libraries för PID-reglering för både Arduino och RPi. Särskilt D-verkan kan ju vara intressant i den här applikationen, för att förutspå vart ärvärdet är på väg och minska fluktuationerna.

Notera också att jag tycker det är oerhört roligt att krångla till sånthär, och att det i praktiken absolut inte behövs iom att RPi skyddar sig själv genom att throttla om den blir för varm

Visa signatur

Nu lurade jag dig att slösa bort ett par värdefulla sekunder av ditt liv på att läsa denna fullständigt poänglösa signatur!

Permalänk
Medlem

tack så mycket för input Kaputt, jag är nog lite av just den personen som tänkt följande:

pi5 + arduino -> fäkten 10%
uppstart:
pi5 startar, arduiono startar och kör fläkt som standard 10% hastighet.
när pi5 är "up n running" pulsar pi 5 till arduinon varje 2a sekund att "så här fort ska fläkten gå".
Om arduino inte får puls inom 10 sek, piper en summer eller nått annat passande. (mest för att detta kommer sitta i en imac så den kommer inte synas alls å kronglig att plocka ur.
Kommer finnas en "orginal kylning" på den, men kanske går att göra en "vindtunnel" med 12v fläkten som kommer att göra jobbet som kommer ge betydligt högre flöde, men det är längre fram om man orkar lägga tiden på det