#include <Servo.h>
const int button_abzug = 2;
const int button_feuerstoss = 4;
const int button_einzelfeuer = 6;
const int button_flywheel = 8;
Servo flywheel;
Servo pusher;
int buttonAbzug = 1;
int buttonFeuerstoss = 1;
int buttonEinzelfeuer = 1;
int buttonFlywheel = 1;
boolean grundstellung = false;
void setup() {
Serial.begin(9600);
pusher.attach(11);
pusher.write(140); //Pusher auf Null
delay(5000);
flywheel.attach(10);
flywheel.write(26);
delay(5000);
pinMode(button_abzug, INPUT_PULLUP);
pinMode(button_feuerstoss, INPUT_PULLUP);
pinMode(button_einzelfeuer, INPUT_PULLUP);
pinMode(button_flywheel, INPUT_PULLUP);
}
void loop() {
buttonAbzug = digitalRead(button_abzug);
buttonFeuerstoss = digitalRead(button_feuerstoss);
buttonEinzelfeuer = digitalRead(button_einzelfeuer);
buttonFlywheel = digitalRead(button_flywheel);
if ((buttonFlywheel == LOW) && (buttonFeuerstoss == LOW || buttonEinzelfeuer == LOW))
{
delay(30);
flywheel.write(80);
delay(30);
} else {
flywheel.write(26);
delay(30);
}
if ((buttonAbzug))grundstellung=false;
if ((buttonFlywheel == LOW) && (buttonAbzug == LOW)&&(buttonEinzelfeuer == LOW)&&(!grundstellung))
{
delay(30);
pusher.write(40);
delay(300);
pusher.write(140);
delay(300);
grundstellung=true;
}
if ((buttonFlywheel == LOW) && (buttonAbzug == LOW)&&(buttonFeuerstoss == LOW)&&(!grundstellung))
{
delay(30);
pusher.write(40);
delay(300);
pusher.write(140);
delay(300);
pusher.write(40);
delay(300);
pusher.write(140);
delay(300);
pusher.write(40);
delay(300);
pusher.write(140);
delay(300);
grundstellung=true;
}
}
Als nächstes stelle ich meine Modelle beim 3d Druck fertig ein (ic-1 meine fav. Knarre).
Deine Threads schau ich mir nicht mehr an.
Da kriegt man ja Minderwertigkeitskomplexe.
Also andere. Ich kann da mithalten.
Ich hab gestern nen AR aus ner Xshot Micro gepopelt.
Und am Tag dafür den Standfuß für ne Pappspielfigur aus nem Sendung mit Maus Brettspiel designt.
![]()
Auf jeden Fall, wenns denn mal Läuft. Ich hab mir schon gedacht das die Pros ausm Arduino Forum direkt in den ersten Sekunden schreiben mach es mit millis nicht mit delay.... Dafür bin ich aber nicht logisch genugMach gerne ein Video von dem Blaster, wenn er komplett fertig istich will sehen wie er funktioniert
![]()
Weißt Du, ich mache so einen Kram beruflich. Nicht in meiner Freizeit, bitte. Ich hab das einmal für Leute in einem Retro-Computing Forum gemacht und bin deshalb fast in einen Burnout gerast. Mach ich nicht wieder, sorry.
#include <Servo.h>
const int button_abzug = 2;
const int button_feuerstoss = 4;
const int button_einzelfeuer = 6;
const int button_flywheel = 8;
Servo flywheel;
Servo pusher;
int buttonAbzug = 1;
int buttonFeuerstoss = 1;
int buttonEinzelfeuer = 1;
int buttonFlywheel = 1;
boolean grundstellung = false;
void ef(){
pusher.write(40);
delay(300);
pusher.write(140);
delay(300);
grundstellung=true;
}
void fs(){
pusher.write(40);
delay(300);
pusher.write(140);
delay(300);
pusher.write(40);
delay(300);
pusher.write(140);
delay(300);
pusher.write(40);
delay(300);
pusher.write(140);
delay(300);
grundstellung=true;
}
void setup() {
Serial.begin(9600);
pinMode(button_abzug, INPUT_PULLUP);
pinMode(button_feuerstoss, INPUT_PULLUP);
pinMode(button_einzelfeuer, INPUT_PULLUP);
pinMode(button_flywheel, INPUT_PULLUP);
pusher.attach(9);
pusher.write(140); //Pusher auf Null
delay(100);
flywheel.writeMicroseconds(1000);
flywheel.attach(11, 1000, 2000);
delay(5000);
}
void loop() {
buttonAbzug = digitalRead(button_abzug);
buttonFeuerstoss = digitalRead(button_feuerstoss);
buttonEinzelfeuer = digitalRead(button_einzelfeuer);
buttonFlywheel = digitalRead(button_flywheel);
if ((buttonFlywheel == LOW) )
{
flywheel.write(92);
delay(10);
if ((buttonAbzug == LOW) && (buttonEinzelfeuer == LOW) && grundstellung == false)
{
ef();
}
if ((buttonAbzug == LOW) && (buttonFeuerstoss == LOW) && grundstellung == false)
{
fs();
}
} else {
flywheel.write(0);
delay(30);
}
if ((buttonFlywheel == LOW) )
{
flywheel.write(92);
delay(10);
if ((buttonAbzug == LOW) && (buttonEinzelfeuer == LOW) && grundstellung == false)
{
ef();
}
if ((buttonAbzug == LOW) && (buttonFeuerstoss == LOW) && grundstellung == false)
{
fs();
}
} else {
flywheel.write(0);
delay(30);
}
if ((buttonAbzug == HIGH)) {
grundstellung=false;
}
}
Ja ich weiß, danke dafür! Jetzt soll diese knarre erstmal laufen. Die Fortbildung in c&c++ führe ich mit dem nächsten Projekt weiter.Ich hatte Dir den Hinweis mit Interrupts gegeben, was beim Arduino nicht wirklich schwer ist. Frag mal Deine Lieblingssuchmaschine. Der Code wird dadurch einfacher und übersichtlicher, und Du läufst nicht mehr Gefahr, dass ein Tastendruck nicht registriert wird, weil der Arduino in irgend einer Verästelung Deines if - then - else - Baumes unterwegs ist und die Tasten gerade nicht abfragen kann.![]()
Danke, ne nix nachbearbeitet. Der Extrusionsfaktor war noch auf das andere Filament eingestellt.... habs erst bei der Hälfte des Modells umgestellt.Hast du die Druckteile nochmal nachbearbeitet? Auf den ersten Bildern sieht man deutliche Spuren von Underextrusion auf den glatten Oberflächen, auf den späteren nur noch auf den schwarzen Teilen... Ansonsten finde ich das Projekt mega spannend ^^ auch wenn mir die Arduino-Geschichte wahrscheinlich zu kompliziert wäre um es nachzubauen, die Vorgehensweise bei deinen Konstruktionen finde ich super =) Da kann man noch das ein oder andere lernen ^^
Im ersten code den du gepostet hast, hattest du btw mehrfach "els if" geschrieben, müsste das nicht "else if" heissen? Vielleicht hats deswegen nicht funktioniert? =)
Bin gespannt aufs Endergebnis!
Um den Besuch unserer Website attraktiv zu gestalten und die Nutzung bestimmter Funktionen zu ermöglichen, verwenden wir auf verschiedenen Seiten sogenannte Cookies. Hierbei handelt es sich um kleine Textdateien, die auf Ihrem Endgerät abgelegt werden. Einige der von uns verwendeten Cookies werden nach dem Ende der Browser-Sitzung, also nach Schließen Ihres Browsers, wieder gelöscht (sog. Sitzungs-Cookies). Andere Cookies verbleiben auf Ihrem Endgerät und ermöglichen uns oder unseren Partnerunternehmen (Cookies von Drittanbietern), Ihren Browser beim nächsten Besuch wiederzuerkennen (persistente Cookies). Werden Cookies gesetzt, erheben und verarbeiten diese im individuellen Umfang bestimmte Nutzerinformationen wie Browser- und Standortdaten sowie IP-Adresswerte. Persistente Cookies werden automatisiert nach einer vorgegebenen Dauer gelöscht, die sich je nach Cookie unterscheiden kann.
Wir arbeiten unter Umständen mit Werbepartnern zusammen, die uns helfen, unser Internetangebot für Sie interessanter zu gestalten. Zu diesem Zweck werden für diesen Fall bei Ihrem Besuch unserer Website auch Cookies von Partnerunternehmen auf Ihrer Festplatte gespeichert (Cookies von Drittanbietern). Wenn wir mit vorbenannten Werbepartnern zusammenarbeiten, werden Sie über den Einsatz derartiger Cookies und den Umfang der jeweils erhobenen Informationen innerhalb der nachstehenden Absätze individuell und gesondert informiert.