Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Manufacturing Technology >> Productieproces

25 kHz 4-pins PWM-ventilatorregeling met Arduino Uno

Componenten en benodigdheden

Axiale ventilator, 12 VDC
× 1
Arduino UNO
× 1
USB-A naar mini-USB-kabel
× 1
Jumperdraden (algemeen)
× 1

Apps en online services

Arduino IDE

Over dit project

Ik heb me afgevraagd over dit project en hoe ik mijn 4-pins PWM-fans kan bedienen. Ik had er 5 liggen en dacht dat de mijne het ook eens zou proberen. De frequentiewaarden kunnen worden aangepast tussen 125 HZ - 8 MHZ en een variabele werkcyclus. Het circuit maakt gebruik van de modus 10 PWM fasecorrectie op timer 1 OCR1A (Pin 9) en ICR1 (Pin 10). Er was wat debugging nodig om dit te achterhalen en ik heb een draagbare oscilloscoop. Het maakt het zien van de frequenties en duty-cycles veel gemakkelijker en er is geen gissen bij betrokken. Hier is de link:de oscilloscoop.

Ik raad je ten zeerste aan om de datasheet van je ventilator op te zoeken, aangezien de bedieningspin in mijn geval geel was (wat normaal gesproken wordt aangeduid als tach-draad). Zorg ervoor dat u ook het acceptabele frequentiebereik vindt (OF "CENTREERFREQUENTIE ") voor de door u gekozen ventilator. Mogelijk moet u de codefrequentie wijzigen om deze aan uw behoeften aan te passen. Ten slotte hebt u een goede voeding nodig (de mijne is een omgebouwde ATX PSU van een oude pc).

OPMERKING:ik heb geprobeerd een andere timer te gebruiken en 2 ventilatoren onafhankelijk van elkaar te bedienen. Het werkt niet. De reden hiervoor is dat de resolutie van de 2e timer lager is (16 bit vs 8 bit). Dit betekent dat stappen in frequentie- en duty-aanpassingen luidruchtig zijn en dat de golfvormen steeds meer worden vervormd. Dit is ook niet zo eenvoudig bij het invoeren van waarden.

Code

  • De code
De CodeArduino
Download dit bestand en voer het uit onder de Arduino IDE.
const byte OC1A_PIN =9;const byte OC1B_PIN =10;const word PWM_FREQ_HZ =25000; //Pas deze waarde aan om de frequentie aan te passen (Frequentie in HZ!) (Momenteel ingesteld op 25kHZ)const word TCNT1_TOP =16000000/(2*PWM_FREQ_HZ);void setup() {pinMode(OC1A_PIN, OUTPUT); // Wis Timer1-besturings- en telregisters TCCR1A =0; TCCR1B =0; TCNT1 =0; // Set Timer1 configuratie // COM1A(1:0) =0b10 (uitgang A duidelijk stijgend/set dalend) // COM1B(1:0) =0b00 (uitgang B normaal bedrijf) // WGM(13:10) =0b1010 (Phase correct PWM) // ICNC1 =0b0 (Input capture noise canceler uitgeschakeld) // ICES1 =0b0 (Input capture edge select uitgeschakeld) // CS (12:10) =0b001 (Input klokselectie =klok/1) TCCR1A | =(1 <  

Schema's


Productieproces

  1. Licht dimmen met PWM met drukknop
  2. Schakel Alexa Control in op je plafondventilator
  3. Arduino klok met islamitische gebedstijden
  4. Bedien muntvangers met Arduino
  5. Arduino met Bluetooth om een ​​LED te bedienen!
  6. Arduino Nano:bedien 2 stappenmotoren met joystick
  7. Een afbeelding weergeven op een LCD TFT-scherm met Arduino UNO!
  8. Een LED-matrix besturen met Arduino Uno
  9. 4x4x4 LED-kubus met Arduino Uno en 1sheeld
  10. ThimbleKrox - Muisbediening met je vingers
  11. Bedien een kakkerlak met Arduino voor minder dan $30