Rijsnelheid met behulp van een TIP122
2 min gelezenDeze post komt oorspronkelijk van bliksemsnel.net en beschrijft een wijze die gebruikt kan worden om een modelspoor locomotief aan te sturen op het modelspoor.
Om de rijsnelheid te regelen wordt een arduino gebruikt met een TIP122.
We gebruiken hiervoor een PWM (Pulse Width Modulation) output van de arduino.
Aangezien deze output voor de rijsnelheid te laag is (5V en max 50mA) maken we gebruik van een externe voeding en een transistor.
De TIP-122 transistor kan een hoger vermogen (5A) en spanning (100V) aan. Je kan ook de TIP-120(60V) of TIP-121(80V) gebruiken.
Kijk hier voor de TIP-120/TIP-122 datasheet.
TIP122
Dit alles word getest op een testbaantje `rondje om de kerk`
Benodigdheden:
- Arduino
- TIP 122 transistor
- 10K potentionmeter
- 1K Ohm weerstand (bruin,zwart,rood,goud)
- Kabeltjes
- breadboard
- Externe 16V voeding
Circuit:
De aansluiting is als volgt:
- De potentionmeter sluiten we aan op pin A0 (aneloge ingang 0)
- De PWM output pin 3 gaat naar de TIP-122 base pin (B) via de 1K ohm
weerstand - De TIP-122 emitter (E) connect je aan de massa
- De TIP-122 collector (C) gaat naar de rails
Let op dat je de massa van de arduino en de externe voeding met elkaar verbind.
De plus van de externe voeding gaat naar de rails.
Code:
/*
Project 'Rijsnelheid mbv een TIP122'
Project details at https://www.kalkhaar.nl/rijsnelheid-met-behulp-van-een-tip122/
Author 'Marcel Kalkhaar'
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files.
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
*/
int potPin = 0; // Analog pin 0 connected to potentionmeter
int railroadPin = 3;// digitaal pin 3 (pwm) output
int potValue = 0;// value of the potentionmeter
void setup() {
pinMode(railroadPin, OUTPUT);
}
void loop() {
// potValue read the anolog value of the potentionmeter and devide it by 4
// Then it writes it to the railroad pin
potValue = analogRead(potPin) / 4;
analogWrite(3, potValue);
// a little delay for a bit more stability
delay(250);
}
De sketch kunt U hier download
Originele post op bliksemsnel.net maar verhuisd naar kalkhaar.nl