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

Hoe Arduino PWM-uitgangen uit te breiden - TLC5940-zelfstudie

In deze Arduino-zelfstudie leren we hoe we het TLC5940 PWM-stuurprogramma kunnen gebruiken met behulp van het Arduino-bord. De TLC5940 is een 16-kanaals LED-stuurprogramma dat PWM-uitgangen biedt en het is perfect voor het uitbreiden van de Arduino PWM-mogelijkheden. Niet alleen LED's, maar met dit IC kunnen we ook servo's, DC-motoren en andere elektronische componenten aansturen met behulp van PWM-signalen.

Basisfuncties

  •  VCC =3V tot 5V
  • 16 kanalen
  • 12 bit (4096 stappen) PWM-besturing
  • Rijcapaciteit
        – 0 mA tot 120 mA (VCC> 3,6V)
        – 0 mA tot 60 mA (VCC <3,6V)
  • Seriële gegevensinterface
  • 30 MHz gegevensoverdrachtsnelheid
  • Daisy chaining

Daisy chaining is een geweldige functie, wat betekent dat we meerdere TLC5970 IC's in serie met elkaar kunnen verbinden. Hiermee kunnen we de PWM-mogelijkheden van de Arduino uitbreiden tot meer dan 16 uitgangen, bijvoorbeeld 32, 48 of 64 PWM-uitgangen en toch dezelfde 4 pinnen gebruiken die door het Arduino-bord worden gebruikt als voor het aansturen van één TLC5940 IC.

Je kunt de componenten voor deze tutorial downloaden van een van de onderstaande sites:

  • Arduino Nano……………………..
  • Ultra heldere rode LED's………… 
  • TLC5940 LED-stuurprogramma's………… 

Arduino- en TLC5940-bedrading

Voor het besturen van de TLC5940 moeten we 4 pinnen van uw Arduino-bord bezetten. Omdat we de Arduino-bibliotheek TLC5940 van Alex Leone zullen gebruiken, moeten we de IC op de Arduino aansluiten volgens zijn bibliotheekconfiguratie of met behulp van de volgende circuitschema's:

Het bovenstaande circuitschema gebruikt een externe voeding voor het voeden van de LED's, maar het kan ook worden aangesloten met alleen de Arduino VCC zelf als de totale hoeveelheid getrokken stroom de limiet van de Arduino niet overschrijdt (absoluut maximaal vermogen, DC-stroom VCC en GND-pinnen – 200 mA).

We moeten ook opmerken dat de TLC5940 een constante stroomafvoer is, dus de stroom vloeit naar de uitgangspinnen. Dit betekent dat we bij het aansluiten van LED's de negatieve kabel (kathode) moeten aansluiten op de uitgangspen van het IC en de positieve kabel (anode) op de 5V VCC.

We hebben ook 2 condensatoren nodig voor ontkoppeling en een weerstand voor het regelen van de hoeveelheid stroom die door de uitgangen vloeit. De waarde van de weerstand hangt af van het onderdeel dat we willen aansturen en kan worden geselecteerd met behulp van het volgende diagram uit de datasheet van de TLC5940.

Dus volgens het diagram hebben we voor het aansturen van LED's die 20mA stroom nodig hebben een weerstand van 2K nodig.

Broncode

Zodra we de TLC5940 Arduino-bibliotheek, gemaakt door Alex Leone, hebben gedownload en geïnstalleerd, kunnen we zijn demovoorbeeld 'BasicUse' gebruiken om te begrijpen hoe de uitgangen van de IC worden bestuurd.

Hier is een eenvoudige code die ik voor deze tutorial heb gemaakt voor het besturen van 16 LED's met behulp van deze bibliotheek. Lees de opmerkingen in de code om te begrijpen hoe de functies werken.

/*
 * Arduino and TLC5940 Tutorial - Simple Example
 * by Dejan Nedelkovski, www.HowToMechatronics.com
 */

#include "Tlc5940.h" 

void setup() {
  Tlc.init(0); // Initiates the TLC5940 and set all channels off
}
 
void loop() {
  Tlc.set(0,4095); //(Output Pin from 0 to 15,PWM Value from 0 to 4095)
  // Note: The previous function doesn't activates the output right away. The output will be activated when the Tlc.update() function will be executed!
  
  Tlc.update(); // Activates the previously set outputs
  delay(1000);

  // For activating all 16 outputs at the same time we can use a for loop for setting all of them to be set to PWM value of 4095. Then  the Tlc.updata() function will active them all at the same time.
  for (int i = 0; i < 16; i++) {
    Tlc.set(i, 4095);
  }
  Tlc.update();
  delay(1000);

  //The Tlc.clear() function clears all the outputs, or sets the PWM value of all outputs to 0
  Tlc.clear();
  Tlc.update();
  delay(1000);

  // This for loop will active all 16 LEDs one by one
  for (int i = 0; i < 16; i++) {
    Tlc.set(i, 4095);
    Tlc.update();
    delay(200);
    Tlc.clear();
    Tlc.update();
    delay(200);
  }
}Code language: Arduino (arduino)

Meer dan één TLC5940 bedienen

Voor het in serie schakelen van meer dan één van deze IC's kunnen we dezelfde schakelschema's gebruiken als hierboven weergegeven. Het enige verschil is dat de SOUT (signaaluitgang – pin 17) van de eerste IC moet worden aangesloten op de SIN (signaalingang – pin 26) van de tweede IC enzovoort.

Wat het programmeergedeelte betreft, moeten we enkele wijzigingen aanbrengen. In de TLC5940-bibliotheekmap moeten we het tlc_config.h-bestand wijzigen en de waarde van de variabele NUM_TLCS wijzigen in het aantal TLC5940 IC's die in serie zijn aangesloten en in ons geval is die waarde 2. Als dit is gebeurd, kunnen we nu gemakkelijk alle de LED's van 0 tot 31 en gebruik dezelfde programmeermethode als eerder beschreven.

Als voorbeeld kunt u op de volgende link mijn DIY LED-hartfotolijst - Arduino-project bekijken, waarbij ik 2 TLC5940-IC's gebruik voor het aansturen van 32 LED's.


Productieproces

  1. Hoe de luchtkwaliteit op OpenSensors te meten
  2. Arduino RFID Lock-zelfstudie
  3. IR-afstandsbedieningen hacken
  4. Hoe lang ben je?
  5. Hoe gemakkelijk is het om een ​​thermistor te gebruiken?!
  6. Muziek maken met een Arduino
  7. Tutorial Arduino-vingerafdruksensor
  8. Modbus gebruiken met Arduino
  9. Arduino-zelfstudie:minipiano
  10. Arduino-zelfstudie:JARVIS v1 | Hoe maak je een huisautomatisering
  11. Arduino-zelfstudie 01:Aan de slag