Ich hab das Programm nicht geschrieben nur verändert. Ich hab selbst nicht so die Ahnung was ich da gemacht habe.
Ant unter "hochdruck"
-
-
xD Naja, ändermal die Wartezeit bei dem Befehl wo der Error kommt auf 250ms.
Oder warte bis ich dir was geschickt hab?
-
So das Programm funktioniert so halb. Aber ich komme dem Ziel näher. Wenn ich kurz (tippen) in dem Bereich >130 bin schaltet der Ausgang 500ms ein. Gehe ich innerhalb diser Zeit >100 geht die LED Sofort aus. Jetzt kommt aber mein Problem. Halte ich den Taster Bleibt der Ausgang an.
{
// LED- Ausgänge schalten, je Timer- Wert -> erprobt mit ATmega8
if(RCvalue > 100)
{
LED_Port |= ~(1<<SchaltLED2); // Portausgang Schalt- LED2 high -> LED aus
}
if(RCvalue > 130)
{
LED_Port &= ~(1<<SchaltLED2); // Portausgang Schalt- LED2 low -> LED an
_delay_ms (500); // 500 ms warten
LED_Port |= ~(1<<SchaltLED2); // Portausgang Schalt- LED2 high -> LED aus
}
}Der hängt irgendwie in einer Endlosschleife. Wie kann ich denn jetzt eine bedingung einfügen z.b. warte bis >130 bis der wieder den Ausgang setztsen kann? Also eine Verriegelung für den Timerstart.
-
Keine Ahnung, aber wenn du das mit nem Taster machst bringt dir das am ende nichts, da der dann nichts mit einer PWM vom Empfänger anfangen kann.
Du musst ne Funktion machen:
Sobald Bit in Port x gesetzt 1,5sec warten, dann gucken ob immernoch bit in Port x gesetzt, wenn ja dann weiter machen, wenn nein dann zurück zum anfang.
Damit guckt man einfach ob das Signal was reinkommt kleiner oder größer als 1,5ms ist.
Das reicht aus da ja am Ende eh das Ventil über einen Schalter/Taster/Druckschalter gesteuert wird. -
Der Taster ist an der Funke und nicht am Attiny.
-
Achso ok, hatte ich falsch verstanden
-
Emotionaler Tiefpunkt. Das Ventil ist kaput und der Attiny Kann gerade mal bis 240ms zählen. Der warte bis Befehl ist auch schon belegt. Ich denke ich nehme einen PIC sollte ich ds Ventil repariert haben. Wollte gleich egentlich in die Stadt teile kaufen aber . Kein Bock mehr!!! Warum sind elektrische Waffen einfacher? So kurz vorm Ziel und dann sowas.
-
Nur bis 240? Kann nicht sein, der muss bis 256(8bit) können?
Ich löt gleich mal ne lochraster zusammen und schick sie dir dann zu, mit du testen kannst.
Ich werde dann mehrere Ports als outputs einstellen, dann musst du einfach den jeweiligen Port den du haben willst an den Transistor löten.
(werde 7Ports machen, Port0: 200ms ;Port1:400ms ;Port2:600ms ;Port3:800ms.....)
Sofern du wills.
Ist dann nur eben geschätzte 10mal so groß als die 1mal1cm Platinen die ich demnächst mache -
- Offizieller Beitrag
ZitatEmotionaler Tiefpunkt. .... Kein Bock mehr!!!
Aber Mike, wer wird denn so schnell aufgeben! Als Elektroniker ist man doch gewohnt, dass es erst nach vielen Versuchen klappt. *Aufmunter*
ZitatOriginal von panzerbot
Nur bis 240? Kann nicht sein, der muss bis 256(8bit) können?Ich löt gleich mal ne lochraster zusammen und schick sie dir dann zu, mit du testen kannst.
Ich werde dann mehrere Ports als outputs einstellen, dann musst du einfach den jeweiligen Port den du haben willst an den Transistor löten.
(werde 7Ports machen, Port0: 200ms ;Port1:400ms ;Port2:600ms ;Port3:800ms.....)
Sofern du wills.
Ist dann nur eben geschätzte 10mal so groß als die 1mal1cm Platinen die ich demnächst macheIch will's jetzt nicht besser wissen, aber klappt das mit den verschiedenen Zeitstaffelungen auf jeweils einem anderen Portausgang?
Das Programm ist "geradlinig" geschrieben, es ist also nicht möglich, dass mehrere Prozesse gleichzeitig bearbeitet werden. Wenn also die Warteschleife läuft, dann wird in der Zwischenzeit nichts anderes bearbeitet.Alternative wäre: Drei Ports als Eingänge definieren. Hier dann immer abfragen, was "von aussen" gerade gewünscht wird. Je nachdem, welcher von den Eingänge auf High (+5V) oder Low (GND) gelegt ist, wird dann die Zeitschleife ein paarmal mehrmals durchlaufen. Es gibt also nur einen einzigen Portausgang. Spart das Umlöten des Transistors.
-
Zitat
Original von IBF
Aber Mike, wer wird denn so schnell aufgeben! Als Elektroniker ist man doch gewohnt, dass es erst nach vielen Versuchen klappt. *Aufmunter*
Nein kenn ich nicht ich bin unfehlbar~bei 240ms Ist das Resgister für den Timer voll.
Erstmal das Ventil reparieren. Mal sehen was kaput gegangen ist.
panzerbot: Brauchst du erstmal nicht. Ich mach erstmal einen funktionierenden Bot. Die Zeitbegrenzung ist eher das "Profizubehör". Einen RC Schalter ohne Zeitbegrenzung habe ich ja schon.
-
Geht wohl
Ich stell einfach alle Ports die als Ausgang sein sollen auf an.
Nach 200ms mach ich dann Port0 aus,
nach 400 Port1 usw.Krümmel: Ok Die Platinen mach ich ja so oder so, sag einfach bescheid wenn du eine brauchst(oder mehrere :D), wenn die fertig sind(und meine Flippschaltung) dann wird das eh im Forum in einem extra Thread bekannt gegeben :]
-
Ich bekomm meinen Kolben nicht dicht. Ich habe das Gefühl der Stoßdämpfer ist innen Kegelförmig. Also muss ich mir etws neues ausdenken. Aber erstmal muss ich das Ventil zerlegen.
-
Besorg dir Silikon und gieß dir daraus eine Kolbenplatte, sollte klappen.
Das die Stoßdämpfer Kegelförmig sind ist seh unwahrscheinlich, wobei sind halt welche von Conrad Aber eigentlich sind die nicht Kegelförmig von innen. -
Erzähl das meinem Kolben. Ich versuch mir doch nochmal einen Kolben aus einem Messingrohr zu bauen. Habe festgestellt das Stabilit Express eine gute Kolbenplatte ist.
8N sind doch 800g oder? -
- Offizieller Beitrag
ZitatOriginal von Krümmel
8N sind doch 800g oder?
Umgerechnet .... ja
// Edit: Besserwissermdous: Ein
{
(Wie würde es ein Physiklehrer definieren: 8N ist ungefähr die Kraft, die ein Körper mit der Masse von 800g auf der Erde verursachen würde..
=> 800g sind z.B. auf dem Mond immer noch 800g, verursachen aber nur ein Sechstel der Kraft.)
}
// Edit: Besserwissermdous: Aus
-
Also werde ich mir einen 6mm Kolben selber bauen. In der Hoffnung das die Verluste durch den kleineren Boden geringer sind.
-
IceMaster
31. Dezember 2020 um 10:58 Hat das Thema aus dem Forum Waffen nach Waffensysteme verschoben. -