Und dann empfiehlst du deine Makros die ein erhoehtes Knieschiesspotential enthalten...Zitat:
Zitat von _R2D2
Druckbare Version
Und dann empfiehlst du deine Makros die ein erhoehtes Knieschiesspotential enthalten...Zitat:
Zitat von _R2D2
vieleicht klappt folgendes
grussCode:#include <avr/io.h>
#include <util/delay.h>
#include <stdint.h>
int main () {
uint8_t start=1;
DDRB = 0x00; // B Eingänge
DDRD = 0xFF; // D Ausgänge
PORTD = 0x00; //Standard: D0,D4 gesetzt 0x11
DDRA = 0xFF; // A Ausgänge
PORTA = 0x00;
// pb0 , pb1, pb2 oefner, also geben sie immer ne eins aus
while(1)
{
if (PORTB==0b00000101) /*|| !(PORTB==0b00000011)*/) // Wenn B1 oder B2 == 0 dann ...
{
PORTD = 0x00; // Alle D Ports auf 0
start=1;
}
if ( PORTB==0b00010111 ) // Wenn B4 == 1 dann
// die letxten 3 einser, weil die oefner immer einser liefern solang sie nicht betaetigt sind
{
PORTD = 0x17; //D0,D1,D2,D4 gesetzt
}
if ( PORTB==0b00001111 ) // Wenn B3 == 1 dann
{
PORTD = 0x19; //D0,D1,D4 gesetzt
}
if (PORTB==0b00000110 ) // Wenn B0 == 0 dann
{
PORTD = 0x11; //Standard: D0,D4 gesetzt
start=0;
}
if(start==0)
{
if((bit_is_set (PORTD,4))) //2LEDs abwechselnd blinken //Wenn PortD4 gesetzt
{
PORTD &= ~(1 << PD4); //PortD4 auf 0 setzen PD4 statt nur 4
PORTD |= (1 << PD5); //PortD5 auf 1 setzen
_delay_ms(40);
}
else
{
PORTD &= ~(1 << PD5); //PortD5 auf 0 setzen PD5 statt nur 5
PORTD |= (1 << PD4);
_delay_ms(40);
}
}
}
return 0;
}
danke für den code, werde ihn gleich mal testen
=D>
wollte eigentlich ein bild von der schaltung hochladen, klappt aber nicht
ich melde mich wieder
Die Schaltung wäre nicht schlecht, ein *.png sollte es sein.
Hast du bei den Tasten entsprechende PullUp oder PullDown Widerstände eingebaut, denn wenn du den Öffner drückst geht die Spannung am Eingang nicht zwangsläufig auf 0V.
ich habe jeweils einen 470 ohm widerstand und den taster in reihe auf den pin
Du musst von allen vier Eingängen noch einen PullDown Widerstand, etwa 10k, nach GND einfügen. Die offenen Eingänge haben sonst kein eindeutiges Potential.
Es wäre besser wenn du die Schaltung so ändern würdest das die Taster von den Eingängen nach GND gehen würden, dann musst du nur noch die internen PullUp aktivieren. PORTB=0xff;
Das Programm entsprechend anpassen.
danke für deine antwort
ich habe leider nicht alles verstanden
1. ich habe nur 1,2 K ohm und 22k ohm widerstände, kann ich die auch nehmen?
2. ich habe ja 2 öffner und 2 schliesser, sollen die alle den pull down bekommen?
3. wie kann ich den internen pull up aktivieren und was muss ich dabei genau machen
sry bin noch nicht erfahren
Du kannst 22k verwenden.
Alle brauchen in deiner Schaltung einen PullDown.
Den internen PullUp aktivierst du inden das du anstelle des PINB = 0x00;von deinem ersten Eintrag PORTB=0xff; schreibst. Das macht aber nur Sinn wenn du die Taster nach GND schaltest.
defnier mal bitte die o.G. "keiner Lüfter" und Relais .... der der Tiny hat nur begrenzte stromabgabe, das du dir den nur nicht grillst!!!
meine Schaltung läuft jetzt (blink LED usw...)
danke für den tipp mit dem pulldown
so ich habe jetzt ein weiteres Problem
ich schicke ja 4,6 V rein
und mein kleiner Lüfter bekommt davon 3,2V
und meine blinkenden LEDs abwechsend 2,2V
allerdings reicht das dem Lüfter nicht, ich muss den beim start anschupsen udn dann dreht er sich nur ganz langsam
wie schaffe ich das, dass er die 4,6V bekommt?
@Ceos daran habe ich auch schon gedacht
Mein Lüfter ist ein kleiner PC Lüfter (12V, 0,11A)
achja, habe bis jetzt noch kein relais dran, wollte erst das problem mit dem lüfter und der spannung regeln
momentan gehen komplett 88mA durch die Schaltung
du hast geschrieben, das der tiny begrentzt ist, kann ich auch einen anderen microcontroller nehmen um das mit der spannung und dem strom besser zu regeln?