Gast
#2443528
Hallo, ich habe folgende Schaltung vorliegen:
.----------.
| |
--- |
- |
.--|--------------------| |
| === |
| GND __ '------------o
| | | | | |
| .-----|7805|------' .-. |
| | |____| | | |
| | | | | |
| | === '-' ||-+
| | __ GND | ||->
| -o| |o---------------------||-+
| -o| |o- |
| -o| |o- |
| -o|__|o- |
| | |
| === |
| GND |
| .-.
| ( X )
| '-'
| |
'----------------------------------'
(created by AACircuit v1.28.6 beta 04/19/05 www.tech-chat.de)
Es liegt also eine Batteriespannung von 12 V an Source vor. Mit einen
IRFR5305 will ich damit eine Lampe ein und ausschalten die am Drain
hängt.
Das Gate soll von einem Portpin eines Mega48 geschaltet werden.
Damit der MOSFET auch wirklich zu macht, habe ich einen 1,8kOhm zwischen
Source und Gate gehängt und will den Portpin des Mega48 auf hochohmig
schalten.
Im Datenblatt steht, das man dazu einen Zwischenschritt machen muss,
also z.B. erst von LOW nach HIGH und dann das DDR auf Eingang schalten.
Habe schon diverse Kombinationen versucht, funktioniert aber nicht. Hier
mal mein Code:
void Kanal9()
{
if(K9 == 0)
{
K9DDR &= ~(1 << KANAL9);
K9PORT |= (1 << KANAL9);
K9DDR |= (1 << KANAL9);
K9PORT &= ~(1 << KANAL9);
K9 = 1;
}
else
{
K9DDR |= (1 << KANAL9);
K9PORT |= (1 << KANAL9);
K9DDR &= ~(1 << KANAL9);
K9PORT &= ~(1 << KANAL9);
K9 = 0;
}
}
Definitionen:
K9DDR = DDRC,
KANAL9 = PC4
K9PORT = PORTC
Mache ich da was falsch, oder ist die ganze Schaltung so nicht richtig ?