Hoi allen,
Ik heb een (beginners)vraag over transistors. Ik heb een schakeling (zie bijlage), waarbij ik een NPN- en PNP transistor heb gekoppeld aan pin 13 van een atmega328 chip.
In combinatie met deze schakeling heb ik de volgende code op de atmega chip gezet:
#include <JeeLib.h> // Low power functions library
int led_pin = 13;
ISR(WDT_vect) { Sleepy::watchdogEvent(); } // Setup the watchdog
void setup() {
pinMode(led_pin, OUTPUT);
}
void loop() {
// Turn the LED on and sleep for 5 seconds
digitalWrite(led_pin, HIGH);
Sleepy::loseSomeTime(5000);
// Turn the LED off and sleep for 5 seconds
digitalWrite(led_pin, LOW);
Sleepy::loseSomeTime(5000);
}
Bovenstande code en circuit werken correct. Bij het inschakelen brandt eerst de led met de NPN transistor, vervolgens de led met de PNP transistor. En dat zo door.
Bij de NPN transistor snap ik volgens mij de werking: Waneer ik PIN 13 een HIGH geef staat er stroom op de base en daarmee loopt er ook stroom van collector naar emitter en brandt dus de led. Wanneer PIN 13 naar LOW gaat is de stroom op de base te klein om de transistor 'aan' te zetten.
Bij een PNP transistor snap ik het nog niet helemaal. Wanneer ik deze een HIGH geef is de transistor juist 'uit'. Ik heb PIN 13 geconfigureerd als een OUPUT, maar ik lees overal dat bij een PNP transistor de stroom van emitter naar base gaat. Hoe kan dat? Ook lees ik dat de base van een PNP transistor aan de negatieve kant van het circuit aangesloten moet worden, maar ik heb em aan de OUTPUT pin. Hoe kan dit werken? Kan iemand dit uitleggen?
Alvast bedankt!

Het klopt wel zo'n beetje wat je schrijft, maar het circuit is niet fraai.
Is het een 3.3V Pro Mini op 8MHz of een 5V Pro Mini ? Ik ga uit van een 3.3V versie.
De NPN transistor:
Als de Basis zo'n 0.6 Volt hoger is dan de Emitter dan gaat hij aan.
Dus een beetje positieve stroom via de weerstand zet hem aan.
De PNP transistor:
Als de Basis zo'n 0.6 Volt lager is dan de Emitter dan gaat hij aan.
Als de Emitter 3.3V is, dan moet de Basis zo'n 2.7V zijn om hem aan te zetten.
Via de weerstand loopt er stroom van de 3.3V door de Emitter naar de Basis en dan gaat hij aan.
Ik vind het verwarrend om over "negatieve" spanning of stroom te praten. De Emitter zit aan de 3.3V en de andere spanningen zijn lager dan de 3.3V.
De constructie van een PNP transistor is tegengesteld aan de PNP transistor. Dus alles is precies andersom.
Het circuit:
Wanneer Pin 13 niets doet (voordat de pinMode is gezet), dan zouden beide leds aan kunnen gaan.
Er loopt dan namelijk stroom door de Emitter van de PNP transistor, naar de Basis, naar de weerstand, naar de andere weerstand, dan de Basis en Emitter van de NPN transistor.
Dat is niet fraai. Het is leuker als je ze ook allebei 'aan' of allebei 'uit' kunt zetten.
Ik gebruik de Atmega328 chip direct, dus geen Arduino. Ik heb deze tutorial gevolgd: https://openhomeautomation.net/arduino-battery
Ik voed het circuit met 3V, dat gaat goed.
Ik vind het verwarrend om over "negatieve" spanning of stroom te praten. De Emitter zit aan de 3.3V en de andere spanningen zijn lager dan de 3.3V.
Ik denk dat ik hier iets niet goed snap over hoe de poorten van de Atmega werken. Ik snap zeg maar niet goed hoe het kan dat bij een PNP transistor stroom loopt van emitter naar base (naar pin 13), terwijl ik pin 13 heb geconfigureerd als OUTPUT. Voor mijn gevoel moet er dan alleen stroom 'uit' de poort 13 gaan, dus naar de base toe.
Wanneer Pin 13 niets doet (voordat de pinMode is gezet), dan zouden beide leds aan kunnen gaan.
Klopt, wanneer ik het circuit inschakel zie je de led die aan de PNP transistor zit kort oplichten. Hoe zou jij de schakeling maken. Daar ben ik wel erg benieuwd naar
Ik had namelijk eerder ook een post op het Arduino forum gezet met de vraag hoe je met een transistor een LED display aan/uit kan zetten. Toen werd er gezegd dat dit alleen met een PNP transistor kon, maar op basis van mijn experimenten zou dit ook met een NPN moeten kunnen. Hier zie ook termen als high/low side switching voorbij komen.
Volgens mij is dit je probleem:
In jouw hoofd betekent output = stroom naar buiten, input = stroom naar binnen.
Dit klopt niet.
Output betekent dat de jij (de arduino) de pin hoog of laag kunt zetten.
Als de pin hoog staat (5V) [EDIT: in dit geval 3.3V] en verbonden is met iets lagers (hopelijk met wat weerstand), gaat er stroom 'naar buiten' lopen.
Als de pin laag staat (0V) en verbonden is met iets hogers, gaar er stroom 'naar binnen' lopen.
Een input pin is 'hoog impedant / hoog ohmig'. Bij een input pin loopt (bijna?) geen stroom naar binnen of naar buiten.
Een input pin kan extern hoog of laag gezet worden, door aan ets hoogs of laas te verbinden, en jij (de arduino) kan lezen of hij hoog of laag staat.
Dus om iets hoog te zetten gebruikt je een output en om iets laag te zetten gebruik je ook een output.
Om te meten of iets hoog of laag is gebruik je een input.
Of je gaat eens een online tutorial doen “hoe werkt een transistor”
@Jobi-Wan: Bedankt voor je verhelderende antwoord! Ik had inderdaad een verkeerde betekenis van INPUT en OUTPUT in mijn hoofd voor de Arduino poorten. Dit maakt het weer een stukje duidelijker!
@nicoverduin: Ik heb al heel veel tutorials gedaan, maar zoals ik ook al zei in mijn vraag: Ik heb het gevoel dat ik ergens iets fundamenteels niet begrijp.
Eerst maar even de opmerking dat pin 13 iets speciaals is door de toegevoegde led, dus voor het begrip is het beter om een andere pin te gebruiken.
een pin op een atMEGA werkt eigenlijk met een PNP en een NPN onder elkaar.
dus de uitgang wordt dan zowel gesourced ofewel de voeding gaat aan, en gesinked dan staat de uitgang naar aarde.
Het verschil is dat je met sinkveel meer volts kan sturen, (kijk eens hoe een ULN2803 werkt)
daar kun je dus gewoon 24 Volt opzetten en schakelen met 3.3 Volt.
over met transistors leds aan sturen
ik kan je er weinig over uitleggen heb het ook geleerd van sommige van deze mensen hier.
maar deze ben ik nu aan het maken. is al getest nu alleen nog netjes een print maken.
met 64 transistors en 1 arduino uno 200 leds aan sturen.
jp14 = jp13
ja mooi schema , werkt ook nog zelfs, alleen heb je maar 10% led aanstaan.