Arduino – die neusten Beiträge

Schaltungs Überprüfung?

Hallo Leute, ich hoffe auf jeden Fall, die Zeichnung anbei kann man gut erkennen. Bei Fragen melden Sie sich bitte gerne. Auf jeden Fall sieht man in der Zeichnung oben links die drei LEDs, die benutzt werden sollen. Jeweils links das Blaue mit einer blauen Farbe, 200 Ohmwiderstand, und die roten Kabel sollen die weiße Farbe darstellen. Auch mit den Stromquellen verbunden, wie man rechts sieht, und den Lüfter. Das große Ziel ist eigentlich, dass wenn Strom anliegt, die LEDs erstmal weiß leuchten. In dem Fall halt die orange Verbindung. Und wenn man dann den Lüfter einschalten will, in drei verschiedene Stufen. Der hat erstmal keine Widerstände der Lüfter, das ist erstmal jetzt unwichtig. Aber die LEDs einschalten will, über den WIP-Schalter, den man unten links sieht, mit 1A, 1, 1B, den man dann drücken kann. Das heißt, man drückt die nach links, 1A, alle drei blauen LEDs sind an. Man drückt die nochmal, zwei LEDs bleiben an. Man drückt die nochmal, eine LED ist an. Man drückt ihn nochmal, Lüfter aus. Die LEDs werden wieder weiß, weil Strom ist ja vorhanden. Heißt, die LEDs leuchten weiß. Das geht alles über ein Arduino. Ich kann anbei auch nochmal den Code hochladen. Natürlich sieht man auch einen Step-Down-Konverter, der von 24 Volt auf 5 Volt die Spannung runterregelt. Und einen Spannungssensor, damit der Arduino auch klar weiß, wann die LEDs leuchten und wann nicht. Der Transistor, wie man rechts sieht, im Bild der Runde kreis, mit Collector, Base und Emitter. Die Basis hat einen 100 Ohm Widerstand. Ich hoffe, man kann die Zeichnung erkennen. Leider funktioniert die bei mir zu Hause nicht. Ich weiß nicht, wo der Fehler liegt. Der Code klappt eigentlich, ich habe ihn geprüft. Es muss also irgendwo in der Schaltung liegen. Danke auf jeden Fall. Ich freue mich um Rückmeldungen und hilfreiches Feedback.

Teileliste: Chanzon 10mm RGB Multicolor LED, DUBEUYEW NanoBoard CH340, APKLVSR DC-DC 24V/5V Step Down, IRLZ44N Transitor, Hesch Wipptaster 16A 6Klemmer, DollaTek Spannungssensor Max 25V

TestCode(Der gerade auch auf dem Arduino ist):

// ----- PINDEFINITION -----

const int buttonPin = 13; // Taster

const int fanPin = 5;  // MOSFET Lüfter

// LED-Pins

const int blueLEDs[3] = {7, 8, 9}; // Stufen 1-3

const int whiteLEDs[3] = {10, 11, 12}; // Strom an

void setup() {

 Serial.begin(9600); // Serielle Verbindung starten

 Serial.println("🔌 Test gestartet!");

 pinMode(fanPin, OUTPUT);

 for (int i = 0; i < 3; i++) {

  pinMode(blueLEDs[i], OUTPUT);

  pinMode(whiteLEDs[i], OUTPUT);

 }

 pinMode(buttonPin, INPUT_PULLUP); // Taster Eingang mit Pullup

}

void loop() {

 Serial.println("💡 LEDs testen...");

 for (int i = 0; i < 3; i++) {

  digitalWrite(blueLEDs[i], HIGH);

  digitalWrite(whiteLEDs[i], HIGH);

  delay(500);

  digitalWrite(blueLEDs[i], LOW);

  digitalWrite(whiteLEDs[i], LOW);

  delay(200);

 }

 Serial.println("🌀 Lüfter AN");

 digitalWrite(fanPin, HIGH);

 delay(2000);

 Serial.println("🌀 Lüfter AUS");

 digitalWrite(fanPin, LOW);

 delay(1000);

 Serial.println("🔄 Zyklus wiederholt sich...");

}

!!

Hier war der erste Code Versuch…

Ich habe das alles mit der Hilfe von ChatGPT gemacht also bin ich mir hier überhaupt nicht sicher ob dies überhaupt klappt…

// ----- PINDEFINITION -----

const int buttonForwardPin = 13; // Taster „vorne“

const int buttonBackPin = A1;  // Taster „hinten“

const int fanPin = 5;      // MOSFET Lüfter

// LED-Pins

const int blueLEDs[3] = {7, 8, 9}; // Stufen 1-3

const int whiteLEDs[3] = {10, 11, 12}; // Strom an

// Variablen

int fanLevel = 0; // 0 = aus, 1 = Stufe 1, 2 = Stufe 2, 3 = Stufe 3

void setup() {

 // Pins als Ausgang definieren

 pinMode(fanPin, OUTPUT);

  

 for(int i=0; i<3; i++){

  pinMode(blueLEDs[i], OUTPUT);

  pinMode(whiteLEDs[i], OUTPUT);

 }

 // Taster als Eingang mit Pullup

 pinMode(buttonForwardPin, INPUT_PULLUP);

 pinMode(buttonBackPin, INPUT_PULLUP);

 // Anfangszustand: Lüfter aus, alle weißen LEDs an

 fanLevel = 0;

 updateLEDs();

}

void loop() {

 // Taster abfragen

 if(digitalRead(buttonForwardPin) == LOW){

  delay(200); // Entprellen

  if(fanLevel < 3) fanLevel++;

  else fanLevel = 0;

  updateLEDs();

 }

 if(digitalRead(buttonBackPin) == LOW){

  delay(200); // Entprellen

  if(fanLevel > 0) fanLevel--;

  else fanLevel = 3;

  updateLEDs();

 }

}

// ----- LED + Lüfter Logik -----

void updateLEDs(){

 // Lüfter steuern

 if(fanLevel == 0){

  digitalWrite(fanPin, LOW);

 } else {

  digitalWrite(fanPin, HIGH);

 }

 // Blaue LEDs

 for(int i=0; i<3; i++){

  if(fanLevel > i){

   digitalWrite(blueLEDs[i], HIGH);

  } else {

   digitalWrite(blueLEDs[i], LOW);

  }

 }

 // Weiße LEDs (immer an, wenn Lüfter aus)

 for(int i=0; i<3; i++){

  if(fanLevel == 0){

   digitalWrite(whiteLEDs[i], HIGH);

  } else {

   digitalWrite(whiteLEDs[i], LOW);

  }

 }

}

Zukünftige Plan ist es auch noch eine Heizung in den Kreislauf einzufügen und das der Lüfter auch drei stärken annehmen kann sowie die Heizung auch, dass alles über die selbe drei LEDs angezeigt wird. Gerne dafür auch Tipps und tricks…

Das ist alles sehr viel, aber ich hoffe mir kann jemand helfen:)

Danke schonmal im Voraus

Bild zum Beitrag
Elektrik, Licht, Mikrocontroller, Arduino, Elektrizität, LED, Schaltung, Arduino IDE

Könnt ihr mir bei der Programmierung für meine GFS helfen?

Bitte durchlesen, ich brauche wirklich Hilfe dabei.

Für meine GFS morgen Abend in Informatik ( an der ich ohne Erfolg seit drei Wochen sitze), handelt es sich um den I2C-Baustein, der durch ein Mikrofon, auf dem ICC-Baustein die LEDs zum Leuchten bringen soll. D.h. lautes Geräusch, alle LEDs gehen an; geringes Geräusch, keine bis wenige LEDs gehen an.

Folgendes Problem:

Der Code, den ich in Visual Studio Code realisieren muss, funktioniert nicht und zeigt immer eine Fehlermeldung. Die Deklarationen und Initialisierungen des I2 CS sollen nicht über eine Bibliothek laufen, sondern extern im Programmcode. Der I2C heißt PC F8575.

ich habe verschiedene Programme wie ChatGPT zur Hilfe genutzt, als auch Freunde gefragt, aber niemand konnte mir helfen.

Folgendes muss in meine GFS:

Ich muss den I2C-Baustein beschreiben, wie er die LEDs ansteuert und hierbei sollte ich Auszüge aus dem Datenblatt zeigen und erklären. Dann eine kurze Beschreibung des Codes und noch eine Demonstration der Schaltung machen.

Der Code:

#include <Arduino.h>
#include <Wire.h>

#define MIC_PIN A0
#define THRESHOLD 500

void setup() {
 Serial.begin(9600);

 // I2C starten auf PB_9 (SDA), PB_8 (SCL)
 Wire.begin(PB_9, PB_8); // Nucleo-L152RE: D14 = PB_9 (SDA), D15 = PB_8 (SCL)
 Wire.setClock(100000); // 100 kHz wie in deiner Tabelle
 pinMode(MIC_PIN, INPUT);
}

void loop() {
 int micValue = analogRead(MIC_PIN);
 Serial.println(micValue);
 char daten[1];

 if (micValue > THRESHOLD) {
  daten[0] = 0b00000001; // LED an
 } else {
  daten[0] = 0b00000000; // LED aus
 }

 // Adresse 0x20 (PCF8574) wird wie in der Tabelle verdoppelt: 0x20 << 1 = 0x40
 Wire.beginTransmission(0x20); // 7-Bit-Adresse, nicht verdoppeln hier!
 Wire.write(daten, 1);
 Wire.endTransmission();
  
 delay(100);
}

Zu dem Bild:

Dies ist der Ausschnitt meiner Formelsammlung, so in etwa soll der I2C initialisiert, deklariert, und so soll er Sachen lesen und empfangen.

Ich danke wirklich sehr, wenn mir jemand hilft. Diese Note ist die letzte in meinem Fachabitur mit IT. Bitte.

Vielen Dank!

Bild zum Beitrag
IT, programmieren, Arduino, Code, Programmiersprache, I2C, Visual Studio Code

Arduino Auto mit Bluetooth steuern?

Ich haben ein Code für ein ferngesteuertes Auto geschrieben und das Bluetooth geht nicht könnte mir jemand damit helfen?

Das ist der Code (ich benutze ein Arduino Mega):

#include <Servo.h>


Servo myservo;
char command = 0;


const int motorPin1 = 2;
const int motorPin2 = 3;


int trigger = 5;
int echo = 6;
int buzzer = 7;
long dauer = 0;
long entfernung = 0;


void setup() {
  Serial.begin(9600);       // Für den seriellen Monitor
  Serial1.begin(9600);      // Für Bluetooth über Serial1 (Pin 18 = TX1, 19 = RX1)


  pinMode(motorPin1, OUTPUT);
  pinMode(motorPin2, OUTPUT);


  myservo.attach(4);     
  myservo.write(90);     


  pinMode(trigger, OUTPUT);
  pinMode(echo, INPUT);
  pinMode(buzzer, OUTPUT);


  pinMode(8, OUTPUT); 
  pinMode(9, OUTPUT);
  pinMode(12, OUTPUT); 
  pinMode(13, OUTPUT);
}


void loop() {
  if (Serial1.available()) {
    command = Serial1.read();
    Serial.print("Command: ");
    Serial.println(command);


    switch (command) {
      case 'F': 
        digitalWrite(motorPin1, HIGH);
        digitalWrite(motorPin2, LOW);
        break;


      case 'B': 
        digitalWrite(motorPin1, LOW);
        digitalWrite(motorPin2, HIGH);
        digitalWrite(12, HIGH);
        digitalWrite(13, HIGH);
        break;


      case 'S': 
        digitalWrite(motorPin1, LOW);
        digitalWrite(motorPin2, LOW);
        myservo.write(90); 
        break;


      case 'L': 
        myservo.write(45);
        break;


      case 'R': 
        myservo.write(135);
        break;


      case 'Y':
        tone(buzzer, 250);
        delay(2000);
        break;


      case 'U':
        digitalWrite(8, HIGH);
        digitalWrite(9, HIGH);
        break;


      case 'u':
        digitalWrite(8, LOW);
        digitalWrite(9, LOW);
        break;
    }
  }


  // Ultraschallmessung und Abstandssensor
  digitalWrite(trigger, LOW);
  delay(5);
  digitalWrite(trigger, HIGH);
  delay(10);
  digitalWrite(trigger, LOW);


  dauer = pulseIn(echo, HIGH);
  entfernung = (dauer / 2) * 0.03432;
  Serial.print(entfernung);
  Serial.println(" cm");


  if (entfernung <= 3) { 
    tone(buzzer, 1000, 100);
    delay(100);
  }
  else if (entfernung <= 6) { 
    tone(buzzer, 1000, 100);
    delay(250);
  }
  else if (entfernung <= 10) { 
    tone(buzzer, 1000, 100);
    delay(500);
  }
  else { 
    noTone(buzzer);
    delay(500);
  }
}


Bluetooth, Mikrocontroller, Arduino, RC-Auto, arduino mega, Arduino IDE

Tipps & Erfahrungen für mein Schulprojekt: Digitales Radio mit DAB⁺/FM + Bluetooth selbst entwickeln – Hardwarewahl, Software-Stack?

Hallo Community,  

ich stehe vor meiner individuellen Projektarbeit (IDPA) der Berufsmaturität.  

Mein Ziel: Ein tragbares Digital-Radio, das …

* DAB⁺- und FM-Sender empfängt,  

* Musik per Bluetooth streamt,  

* auf einem kleinen OLED/LCD alle Infos anzeigt,  

* in einem selbst entwickelten 3D-gedruckten Gehäuse steckt,  

* wahlweise am Netzteil (USB-C) oder über einen Akku läuft.

Damit die Arbeit genug Tiefgang hat und nicht „nur“ ein gekaufter Bausatz wird, will ich möglichst viele Komponenten selbst auswählen, verschalten und programmieren (C++/Arduino-IDE).  

Wo ich Eure Hilfe brauche

1. Hardware-Stack  

  • Welches DAB⁺-Modul lässt sich zuverlässig mit Arduino/ESP32 ansteuern?  

  • MCU-Entscheidung: Reicht ein Arduino (wenig RAM, kein BT-Audio) oder ist der ESP32 sinnvoller?  

2. Software/Libraries  

  • Gibt es stabile Open-Source-Bibliotheken für DAB⁺ (z. B. Si468x) auf Arduino/ESP32?  

  • Wie schwierig ist es, Bluetooth-A2DP parallel zu DAB⁺ sauber zu implementieren?  

3. 3D-Gehäuse  

  • Material-Empfehlung und Tipps

5. Erfahrungswerte & Stolperfallen  

  • Hitze-Management?  

  • Störgeräusche durch EMI zwischen DAB-Modul / Verstärker / MCU?  

 

Über Links zu Schaltplänen, Git-Repos, Datenblättern oder eigenen Projektberichten freue ich mich.  

Schon einmal vielen Dank für jede Idee, Kritik oder Warnung – damit das Radio am Ende mehr ist als ein zusammengesteckter Bausatz! 🙏

Adrian

Technik, Bluetooth, Radiosender, Arduino, DAB, 3D-Drucker

Was muss ich an meinem Arduino-Programm ändern?

Was ist falsch an meinem Arduino-Programm?

Bis jetzt bewirkt es, dass, wenn man die Taste 2 oder A drückt, die rote LED leuchtet und ein nehativer Ton erklingt. Mehr nicht.

Eigntlich soll die Schaltung so funktioneren, dass, wenn man den Code 2009 eingibt, die grüne LED leuchtet, ein fröhlicher Ton aus dem Buzzer erklingt und der Servo sich für 50 Sekunden um 90 Grad öffnet. Sollte man den Code falsch eingeben, leuchtet die rote LED, ein negativer Ton erklingt und der Servo bleibt verschlossen.

#include <Keypad.h>
#include <Servo.h>

#define Buzzer 11

Servo Servo;

int roteLED = 12;
int grueneLED = 13;

void setLocked(bool locked)
{
  if (locked) {
    digitalWrite(roteLED, HIGH);
    digitalWrite(grueneLED, LOW);
    Servo.write(0);
    tone(Buzzer, 400, 500);
    delay(500);
    noTone(Buzzer);
    digitalWrite(roteLED, LOW);
  }
  else {
    digitalWrite(roteLED, LOW);
    digitalWrite(grueneLED, HIGH);
    Servo.write(90);
    tone(Buzzer, 1000, 200);
    delay(250);
    tone(Buzzer, 1500, 200);
    delay(250);
    tone(Buzzer, 2000, 200);
    delay(250);
    noTone(Buzzer);
    delay(50000);
    Servo.write(0);
  }
}

int position = 0;
const byte ROWS = 4;
const byte COLS = 4;
char keys[ROWS][COLS] = {
  {'1', '2', '3', 'A'},
  {'4', '5', '6', 'B'},
  {'7', '8', '9', 'C'},
  {'*', '0', '#', 'D'}
};
byte colPins[COLS] = {2, 3, 4, 5};
byte rowPins[ROWS] = {6, 7, 8, 9};
Keypad keypad = Keypad(makeKeymap(keys), rowPins, colPins, ROWS, COLS);
const char code[5] = "2009";

void setup()
{
  pinMode(roteLED, OUTPUT);
  pinMode(grueneLED, OUTPUT);
  pinMode(Buzzer, OUTPUT);
  Servo.attach(10);
  setLocked(true);
}

void loop()
{
  const char key = keypad.getKey();

  if (key == '*'||key == '#') {
    position = 0;
    setLocked(true);
  }

  if (key == code[position]) {
    position++;
  }
  else
    position = 0;

  if (position == 4) {
    setLocked(false);
  }

  delay(100);
}
Arduino, Code, Programmiersprache, Arduino Uno, Arduino IDE

Arduino programm fehler?

Guten Tag,

Ich hätte eine Frage bezüglich meinem Arduino Programmes, unzwar möchte ich, dass die Schaltung so funktiomiert, dass man Auf dem keypad den code 2009 eingeben musst Macht man dies richtig leuchtet die grüne LED, ein fröjlicher Ton ertönt aus dem Buzzer und der Servo öffnet die Tür.

Sollte mam einen falschen code eingeben leichtet die rote LED ein negativer Ton erklingt und der Serbo bewegt sich nicht.

Was habe ich falsch gemacht wie muss das Programm eigntlich aussehen?

Mit Arduino version 1.13.8

Programm:

#include <Keypad.h>
#include <Servo.h>

#define Buzzer 11

Servo myServo;
char password= "2009";
int position=0;
const byte ROWS = 4;
const byte COLS = 4;
char keys[ROWS][COLS] = {
 {'1', '2', '3', 'A'},
 {'4', '5', '6', 'B'},
 {'7', '8', '9', 'C'},
 {'*', '0', '#', 'D'}
};
byte colPins[COLS] = {2, 3, 4, 5};
byte rowPins[ROWS] = {6, 7, 8, 9};
Keypad keypad = Keypad(makeKeymap(keys), rowPins, colPins, ROWS, COLS);
int roteLED = 12;
int grueneLED = 13;
char code[5] = "2009";

void setup() {
 pinMode(roteLED, OUTPUT);
 pinMode(grueneLED, OUTPUT);
 pinMode(Buzzer, OUTPUT);
 myServo.attach(10);
 setLocked(true);
}

void loop() {
 char key = keypad.getKey();
 if (key == '*'||key == '#')
 {
  position = 0;
  setLocked(true);
 }
 if (key == code[position])
 {
  position++;
 }
 if(position == 4){
 setLocked(false);
}
delay(100);
}

void setLocked(int locked)
{
 if (locked)
 {
  digitalWrite(roteLED, HIGH);
  digitalWrite(grueneLED, LOW);
  myServo.write(90);
  tone(Buzzer, 1000, 200);
  delay(250);
  tone(Buzzer, 1500, 200);
  delay(250);
  tone(Buzzer, 2000, 200);
  delay(250);
  noTone(Buzzer);
 }
 else
 {
  digitalWrite(roteLED, LOW);
  digitalWrite(grueneLED, HIGH);
  myServo.write(0);
  tone(Buzzer, 400, 500);
  delay(500);
  noTone(Buzzer);
 }
}
Arduino, Code, Programmiersprache, Arduino Uno, Arduino IDE

Wie weiße Linien auf Display bei Arduino UNO entfernen?

Ich habe mir das "LAFVIN 3.5 inch TFT LCD Touch Display Shield Module 480x320 SPI Serial ILI9488 with Touch Pen Compatible with Arduino" (Link Unten) gekauft und wollte es mit dem Arduino Uno ansteuern. Da ich in dem Bereich noch eher unerfahren bin und zu diesem speziellen Display keinerlei Daten online sind, habe ich ChatGPT gebeten einen Testcode dafür zu schreiben:

#include <TFT_eSPI.h>
#include <SPI.h>

TFT_eSPI tft = TFT_eSPI(); // Verwende die Setup-Datei

void setup() {
 tft.init();
 tft.setRotation(1); // 0-3
 tft.fillScreen(TFT_BLACK);
 tft.setTextColor(TFT_WHITE, TFT_BLACK);
 tft.setTextSize(2);
 tft.setCursor(50, 100);
 tft.println("LAFVIN ILI9488 Test!");
 delay(2000);
 // Farbtest
 tft.fillScreen(TFT_RED);
 delay(500);
 tft.fillScreen(TFT_GREEN);
 delay(500);
 tft.fillScreen(TFT_BLUE);
 delay(500);
 tft.fillScreen(TFT_BLACK);
}

void loop() {
 tft.drawCircle(random(320), random(240), random(10, 30), TFT_YELLOW);
 delay(100);
}

Die KI meinte noch ich soll die User_Select.h-Datei in der TFT_eSPI-Librarie mit dem folgenden Text ersetzen:

#define ILI9488_DRIVER
#define TFT_CS  10
#define TFT_DC  9
#define TFT_RST 8
#define TFT_MOSI 11
#define TFT_SCLK 13
#define TFT_MISO 12
#define LOAD_GLCD
#define LOAD_FONT2
#define LOAD_FONT4
#define LOAD_FONT6
#define LOAD_FONT7
#define LOAD_FONT8
#define LOAD_GFXFF
#define SPI_FREQUENCY 20000000

Der Sketch scheint zu funktionieren (macht was es soll etwas verblast im Hintergrund) allerdings sind im Vordergrund 2 weiße Linien, die sich über das ganze Display ziehen. Alles ist richtig verkabelt:

VCC -5V GND -GND CS- D10 RESET- D8 DC / RS- D9 SDI / MOSI-D11 SCK -D13 LED -5V (über 100Ω) T_CLK - D13 (geteilt) T_CS- D6 T_DIN - D11 (geteilt) T_DO -D12 T_IRQ -Nicht nötig SDO / MISO - D12

An der Hardware kann es auch nicht liegen, da es beim Neustart des Codes, das Display komplett grün färbt, ohne Linien.

Kann mir da jemand bitte helfen?

Link:

https://www.amazon.de/LAFVIN-3-5-inch-TFT-Compatible/dp/B0CQ86T4S9?crid=20WS4KEIOKM1W&dib=eyJ2IjoiMSJ9.J68Ud1C-2nuVCTfL1PxAptfxyB7uGufPDC4iW-x7GS-26tlMEMiJWmaDdIMuBL-Se6Eh-sHANAYNWQYHJhBrouXdfH1srpKN22RU_T9E7FIn-AA_DYVxtWLkYixHTD1oQY_8O0hoYSwvCIusxjze4ckHNoM2NzshzWsuIdxs0nqjFzmtI4-8U-1GqxbEJLwwUbOQ-Yw19sTBZWwVlOBFXWjHIw4QmAE-5DDASf0kEeLT7ktosacJVZEpZsTudJL-zTZzUi4sDUoopEOggP1cY-2F4R5JAbM9ulQB0ehxA3k.pRKfnBU0tCah9ij3m03vj538RU03jJpVmE7MyP249EU&dib_tag=se&keywords=arduino%2Bdisplay&qid=1747677201&refinements=p_36%3A-1700&rnid=82947031&sprefix=arduino%2Bdi%2Caps%2C108&sr=8-11&th=1

Bild zum Beitrag
programmieren, Arduino, C, C (Programmiersprache), Arduino Uno, Arduino IDE

Arduino Schrittmotor?

Hallo,

ich wollte mal aus Interesse einen Schrittmotor mit einem Microcontroller von Arduino Programmieren. Doch irgendwie klappt es nicht.

Ich benutze ein Nema 17 Schrittmotor mit a4988 Motor driver. Bis jetzt wollte ich den Schrittmotor nur mal schritt für schritt bewegen lassen, in dem ich ihn manuell mit dem a4988 fahren lasse. Also habe ich diesen wie folgt belegt:

Vmot: 12V

GND: GND

2B: Motor

2A: Motor

1B: Motor

1A: Motor

VDD: 5V von Arduino

GND: GND von Arduino

EN: Nichts

MS1: Nichts

MS2: Nichts

MS3: Nichts

Reset mit Sleep verbunden

Step: nichts

Dir: nichts

Jetzt habe ich mir gedacht, wenn ich das so anschließe, würde der Motor nichts machen und ich kann, wenn ich auf dem Step Pin 5v draufgebe den Motor einen Schritt, also 1,8 grad bewegen lassen. Also immer einen Impuls draufgebe und wenn ich 200 Impulse draufgebe, würde ich den Motor 360 grad drehen.

Was wirklich passiert: Der Motor rastet aus und vibriert und dreht sich manchmal, manchmal nicht und vibriert halt.

Ich verstehe nicht warum das so ist, eigentlich sollte er doch nichts machen, bis ich auf dem Step Pin einen Impuls draufgebe, dann sollte er 1,8 grad sich drehen und stehen bleiben, bis der nächste Impuls kommt.

Oder sehe ich das falsch?

Kann es sein, dass es billige Motor driver sind, die nicht richtig funktionieren? Ich meine, die waren schon sehr billig und es waren 6 dabei. Oder habe ich einen Fehler gemacht oder nicht richtig verstanden, wie ein Schrittmotor driver funktioniert?

Kann mir da jemand helfen?

Elektromotor, Arduino

Mosfet kaputt?

Ich schalte ein paar LEDs mit einem Mosfet. Dazu nutze ich eine 9V Blockbatterie. Ich verwende den Optokoppler, weil ich die LEDs mit einer eigenen Batterie betreiben möchte und den Microcrontroller dann deutlich leichter anschließen kann. Die Schaltung hatte ich fertig und sie funktionierte und dann habe ich an den LEDs rumgebastelt. Ich habe immer wieder kleinere Sachen geändert und es hat immer funktionert. Auf einmal haben die LEDs immer geleuchtet. In dem Moment, in dem sie tatächlich leuchten sollen, sind sie lediglich etwas heller geworden. Folgendes ist der Schaltplan:

Die LEDs habe ich folgendermaßen angeschlossen:

Insgesamt habe ich die Schaltung zweimal mit etwas anderen LEDs bei der zweiten Schaltung an der selben Batterie. Der Strom beim zweiten Kreis ist allerdings nur um wenige mA höher. Beide haben gleichzeitig aufgehört zu funktionieren.

Ich habe daraufhin anstelle der Mosfets einfache LEDs angeschlossen, um die Optokoppler zu testen. Sie machen genau das, was sie sollen. Danach habe ich die Mosfets wieder eingebaut und den Gate Source Widerstand überbrückt. Die LEDs sind minimal dunkler geworden, haben aber noch geleuchtet. Danach habe ich die Mosfets mit folgender Schaltung getestet:

Das Ergebnis ist das selbe. Die LED leuchtet. Wenn ich den Taster drücke, leuchtet sie etwas heller. Wenn ich den Widerstand überbrücke, leuchtet sie minimal dunkler. Die Mosfets sind im SOT23 Package und zum Testen habe ich die zwei an einen Pin Header gelötet. Ich habe einen neuen gelötet und erst in dieser Schaltung getestet und danach in der eigentlichen. In beiden sperrt der neue wieder zuverlässig.

Dass die anderen Mosfets kaputt sind, ist offensichtlich. Was ich mich frage ist, wie das passiert ist. Da beide gleichzeitig den Geist aufgegeben haben, glaube ich nicht, dass es Zufall war. Aber was an der Schaltung kann sie kaputt gemacht haben? Wie kann ich dafür sorgen, dass sie nicht wieder kaputt gehen, wenn ich neue benutze? Ich betreibe beide weit unter den maximalen Werten von Vds 30V Id 5,7A und Vgs 12V. Wieso sind die kaputt?

Bild zum Beitrag
Lampe, Elektronik, Batterie, Elektrik, Licht, Spannung, Arduino, Diode, Elektriker, Elektrizität, LED, Schaltung, Widerstand

DC Motor Treiber funktioniert nicht.?

Moin,

habe für ein Projekt, was ein Ferngesteuertes Auto involviert, einen DC Motor besorgt, den ich mit nem Arduino Uno programmieren wollte. Habe es mit zwei verschiedenen Treibern probiert, jedoch hat leider nichts geklappt. Egal welche Verbindung und welchen Code ich ausprobiert habe, der Motor hat sich nicht bewegt. Kaputt kann er jedoch allerdings nicht sein, wenn ich ihn direkt an den Akku den ich verwenden werde anschließe, dann dreht er sich. Die Treiber sowie der Arduino sind auch in Ordnung. Hat jemand Tipps bzw. wüsste was ich falsch mache?

Den Motor und die Treiber die ich ausprobiert habe findet ihr jeweils als Link unten.

Danke für die Antworten

Motor:

https://www.amazon.de/greartisan-Elektrische-Reduzierung-zentrisch-Durchmesser/dp/B072R5G5GR/ref=sr_1_7?__mk_de_DE=%C3%85M%C3%85%C5%BD%C3%95%C3%91&crid=U76NQGGOTCA5&dib=eyJ2IjoiMSJ9.Nn9ca6WnUxhBZaG6uyIuMOQd8us6GGk_SKYUQ8-pylYjFLAJC2GM8rj3KLGxwkXv0OlJw6u3uhfo5F9dap9_EA09tRPFJxa4ATV5DL_vU0aRtONnshrnaP5xxpXWUKzY9MBxi5VP6BRMzqyAjwrjhjW1kG_Ze_dGCwKwN2iAxW17R4BxCkQWkF8xFg6zHpGEKZab9Cc8h6Caqd09GftdwUtp1gBDFNxkwXI2SAkFLP9-OTGzU7ROQmXREvTSF3W3zvvcKLj3hxLX4GKASuivSlEJe_QmV0C945X8Ok2Wh6PW8AKjkjAmw7iImNSJiQDOVgFLPQEYX-iiS5pTRcSTMKJphLEgz03e0TH6yvaiVzCxgOcIMioS1DQf3LZraHo9RUTkuLiAMH08jBFb8bGNnRkdgmShf_uyqLm8fWMFTXGVwB6iqFXGQYOnsVTyTiWz.GVpdtfKctYa1yDZjYrJhq9xqMEdna86Fwl3B4zu0kOo&dib_tag=se&keywords=12v%2Bdc%2Bmotor%2Bartisan&qid=1741720756&sprefix=12v%2Bdc%2Bmotor%2Bartisan%2Caps%2C85&sr=8-7&th=1

Treiber 1:

https://www.amazon.de/BTS7960-Driver-Dealikee-Arduino-Current/dp/B09FLB44TV/ref=sr_1_7?__mk_de_DE=%C3%85M%C3%85%C5%BD%C3%95%C3%91&crid=1YXOOXUQWIIXU&dib=eyJ2IjoiMSJ9.JU0S-u8ULi6ziih5WS752XxZJDyiJAaWfxpt3o_xQUJUEXeKZCYrhWJsH0cl_h1hUbzxwXWVqCcEViRNUO9Yir6_TvKQ9onbDn1Q9EP5Xsv29_kspVgxQUgQjsSgaUB5fk9dKdhnQa7iE60zPs_lgAtS8nHm55spg8xp9DI4Tk48_Y6MvDah2CujcRZK5grUUi6ZZpOD2YSe5uRywcbrg51HtoHgZfyut2vLcC96l4PIUsDn_kVRF4VByXiqwqEKD_McY4wbvefo05imLH7mZTmP6n_-jD6rrhdIixYpZTWAuzvZz9yKe6snngMfrBg9rAHy_6ymIFF7V66WfwMiA1kVuezOBd-wLrhn2dIJ3YxO1RknmuDuqvOzoVc85DN9L8TeutJJc5h0Qymb_WUJxCsUC3DPKa_H3MMc-n4yezxJpxOZ72zfdohmypBQB3RW.orwkKJavl0-FJ0OebjFfqrOpXTkGPNTHB9EZSBRcyno&dib_tag=se&keywords=motor+treiber+ln&qid=1741720777&sprefix=motor+treiber+ln%2Caps%2C91&sr=8-7

Treiber 2:

https://www.amazon.de/HOMSFOU-Schrittmotortreiber-Motortreiberchip-Servomotortreiberplatine-Controllerplatine/dp/B0CRHZM8XV/ref=sr_1_3?__mk_de_DE=%C3%85M%C3%85%C5%BD%C3%95%C3%91&crid=1YXOOXUQWIIXU&dib=eyJ2IjoiMSJ9.JU0S-u8ULi6ziih5WS752XxZJDyiJAaWfxpt3o_xQUJUEXeKZCYrhWJsH0cl_h1hUbzxwXWVqCcEViRNUO9Yir6_TvKQ9onbDn1Q9EP5Xsv29_kspVgxQUgQjsSgaUB5fk9dKdhnQa7iE60zPs_lgAtS8nHm55spg8xp9DI4Tk48_Y6MvDah2CujcRZK5grUUi6ZZpOD2YSe5uRywcbrg51HtoHgZfyut2vLcC96l4PIUsDn_kVRF4VByXiqwqEKD_McY4wbvefo05imLH7mZTmP6n_-jD6rrhdIixYpZTWAuzvZz9yKe6snngMfrBg9rAHy_6ymIFF7V66WfwMiA1kVuezOBd-wLrhn2dIJ3YxO1RknmuDuqvOzoVc85DN9L8TeutJJc5h0Qymb_WUJxCsUC3DPKa_H3MMc-n4yezxJpxOZ72zfdohmypBQB3RW.orwkKJavl0-FJ0OebjFfqrOpXTkGPNTHB9EZSBRcyno&dib_tag=se&keywords=motor%2Btreiber%2Bln&qid=1741720777&sprefix=motor%2Btreiber%2Bln%2Caps%2C91&sr=8-3&th=1

PC, Computer, Technik, bauen, programmieren, Arduino, Code, Handwerker, Mechanik, RC, Robotik

Meistgelesene Beiträge zum Thema Arduino