ESP8266 mit OLED Display?

Ich habe ein ESP8266 Developer Board, und möchte damit ein OLED-Display steuern (.94", 128x64px).

Ich finde nur Tutorials für Displays mit einem I2C-Protokoll, da hat das Display die Pins GND, VCC, SCL und SDA. Ich habe die Pins GND, VDD, SCK und SDA.

Laut meiner Recherche ist das ein SPI-Protokoll. Wenn ich dafür nach Tutorials suche, finde ich nur welche für Displays mit 6 Pins.

Mein Code (von einem I2C Tutorial) benutzt die Adafruit SDD1306 Library, keine Ahnung ob die nur mit I2C oder auch mit ISP funktioniert.

Wenn ich mit einem I2C Scanner die Screen Address suche, findet es das Display nicht.

Meine Schaltung:

OLED GND --> Chip GND

OLED VDD --> Chip 3V3

OLED SCK --> Digital IO 1

OLED SDA --> Digital IO 2

Kann ich einfach die ISP Adresse in den Code einfügen, und wenn ja wie finde ich diese? Oder brauch ich ganz anderen Code / Schaltung?

Code:

 #include <SPI.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>


#define SCREEN_WIDTH 128 // OLED display width, in pixels
#define SCREEN_HEIGHT 64 // OLED display height, in pixels


// Declaration for SSD1306 display connected using I2C
#define OLED_RESET     -1 // Reset pin
#define SCREEN_ADDRESS 0x3C
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);


void setup() {
  Serial.begin(9600);
  display.clearDisplay(); //Clear
  
  display.setTextSize(1);
  display.setTextColor(WHITE);
  display.setCursor(0,28);
  display.println("Hello world!");
  display.display();
  delay(2000);
}


void loop() {
  delay(1000);
}

Display (Ich weiß dass die Schutzfolie noch drauf ist):

Bild zum Beitrag
Display, Technik, programmieren, Arduino, ISP, ESP8266
ARDUINO UNO + HC05 Master?

Moin, ich hab alles Mögliche versucht und chatGPT kann auch nicht helfen.
Ich kann alle AT-Befehle in den SerialMonitor schreiben und kriege antworten aber die Rolle ändert sich einfach nicht auf Master obwohl ich das schonmal geschafft hatte.
Ich kriege es nur hin auf 38400 baud zu kommunizieren, nichts anderes hat bisher für mich hingehauen. Ich hatte mit den PINS10 und 11 (bzw9HIGH) am meisten Erfolg aber naja ich bin nun für alles offen.

Also momentan habe ich VCC an 5V, GND an GND, RXD an Digital10, TXD an Digital11und EN an 3,3V (Vorher Digital9 auf HIGH und dort angeschlossen).
Er startet dann automatisch in dem AT-modus bei dem er langsam blinkt , mit Knopf gedrückt halten und dann starten habe ich es aber auch versucht.
Eingabe - Ausgabe:
AT - OK
AT+UART - +UART=38400,0,0 (Standard war 9600 obwohl ich nur auf 38400 mit ihm kommunizieren konnte, hab ihn jz aber umgestellt)
AT+PSWD - 4321 (Hatte versucht ob ich es ändern kann, ja geht)
AT+NAME - Master ( Hatte versucht ob ich es ändern kann, ja geht)

AT+ROLE=1 - OK

danach gibt AT+ROLE oder AT+ROLE? allerdings:

+ROLE:0
OK

Serial Monitor ist auf "Both NL&CR" "38400baud"

Hier ist mein (momentaner Code):

Wenn ich den Arduino neustarte kriege ich ein OK im SerialMonitor

#include <SoftwareSerial.h>

SoftwareSerial mySerial(10, 11); // RX, TX

void setup() {
  Serial.begin(38400);
  pinMode(9,OUTPUT);
  digitalWrite(9,HIGH);
  mySerial.begin(38400);
  delay(1000);
  mySerial.println("AT");

void loop() {
  if (mySerial.available()) {
    Serial.write(mySerial.read());
  }
  if (Serial.available()) {
    mySerial.write(Serial.read());
  }
}

Auf meinem HC-05 steht auf der Rückseite "ZS-040" keine Ahnung ob das Hilft.
Ich brauche das wirklich dringend also danke ich jedem der helfen kann, auch gerne über Discord. Lg

PC, Bluetooth, programmieren, Arduino, Code, PC-Problem, Raspberry Pi, Arduino Uno
Elektrotechnische Schaltung von Roboter Greifer mit Arduino?

Hallo Zusammen!

Ich habe ein Problem und komme nicht so recht weiter. Ich muss dazu gestehen, dass mir Elektrotechnik nicht so gut liegt und ich mich aber gerade mittels zahlreicher Tutorials und Internetbeiträgen zu mehr Wissen hinarbeite.

Mein Problem:

Ich habe einen Cobot, welcher mit 24V Betriebsspannung arbeitet. Ich wollte für diesen Cobot nun einen Greifer entwickeln, dieser soll mittels eines Servos öffnen und schließen. Die Mechanik des Greifers ist 3D gedruckt und funktioniert soweit. Der Cobot hat einen 24V Versorgungsausgang. Diesen möchte ich gerne zur Steuerung meines Arduino nutzen. Zudem verfügt der Cobot über 7 Digital Inputs und 7 Digital Outputs, wovon ich gerne einen oder zwei Outputs nutzen möchte, um das Signal zum Schließen und Öffnen zu realisieren. Leider fehlt es mir einfach an grundlegendem Verständnis.

Ich habe mal grob eine kleine Zeichnung meines Schaltkreisverständnisses aufgezeichnet (siehe Anhang).

Mein Plan ist es, ein Step-Down-Modul zu verwenden, um die Spannung von 24V auf 5V für den Arduino zu reduzieren. Dann würde ich den Digitalen Output des Roboters mit einem Optokoppler oder einem Spannungsteiler (hier verstehe ich noch nicht, wie ich einen Spannungsteiler in ein digitales Output-Signal von 24V einbaue) verbinden und in den Eingang des Arduino geben. Die Ansteuerung des Servos würde ich dann vom Arduino aus steuern. Ein Problem dabei ist, dass, soweit ich das richtig verstanden habe, der Servo mit 6V arbeitet und mein Arduino nur 5V liefern kann. Zudem verstehe ich in der gesamten Schaltung nicht, wieso ich den Strom nicht begrenzen muss. Ich reduziere zwar die Spannung für den Arduino, aber wieso muss ich nicht auch den Strom reduzieren bzw. woher weiß ich überhaupt, wie viel Ampere der Cobot liefert? Ich glaube, hier verstehe ich trotz zahlreicher Videos nicht den Zusammenhang zwischen Spannung und Strom.

Ich wäre sehr dankbar, wenn mir jemand bei meinem Problem helfen könnte und mir erklären könnte, wie ich meine Schaltung richtig aufbaue, um meinen Greifer mit dem Arduino zu steuern und dabei die richtigen Spannungs- und Stromwerte zu berücksichtigen.

Vielen Dank im Voraus!

Bild zum Beitrag
Roboter, Elektrik, Spannung, Arduino, Elektrizität, Physik, Schaltung
Arduino Bildschirm kaputt?

Hallo ich habe einen Arduino Elegoo 2560, und wollte einen 2*16 LCD-Display nutzen. Jedoch ist mir aufgefallen, das er nichts anzeigt (siehe Bild). Ich hab schon alles versucht und weiß nicht wo das Problem liegt. Könnt ihr mir da weiterhelfen? Da es schlecht erkennbar ist, hab ich noch dazu geschrieben, welche Pins ich wie angeschlossen habe.

Code:

#include <LiquidCrystal.h> // Importiere die LiquidCrystal-Bibliothek

// Konfiguriere den Anschluss des LCD-Displays an den Arduino

LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

void setup() {

 // Initialisiere das LCD-Display mit der Anzahl der Zeilen und Spalten

 lcd.begin(16, 2);

 // Setze den Cursor in die linke obere Ecke des Displays

 lcd.setCursor(0, 0);

 // Gib den Text "Hello, World!" aus

 lcd.print("Hello, World!");

}

void loop() {

 // Setze den Cursor in die untere linke Ecke des Displays

 lcd.setCursor(0, 1);

 // Gib die Anzahl der Millisekunden seit dem Start des Sketches aus

 lcd.print(millis());

 // Warte für eine Sekunde, bevor die Schleife erneut ausgeführt wird

 delay(1000);

}

Pins:

  LCD Pin  | Function | Arduino Pin

----------------------------------------

    1   |   GND  |   GND

    2   |   +5V  |   +5V

    3   | V0 (Pot) | Potentiometer

    4   |   RS   | Digital Pin 12

    5   |   RW   |   GND

    6   |   E   | Digital Pin 11

    7   |   D0   |    -

    8   |   D1   |    -

    9   |   D2   |    -

   10   |   D3   |    -

   11   |   D4   |  Digital Pin 5

   12   |   D5   |  Digital Pin 4

   13   |   D6   |  Digital Pin 3

   14   |   D7   |  Digital Pin 2

   15   |   A   |   +5V

   16   |   K   |   GND

Bild zum Beitrag
PC, Elektrik, Arduino, LED, Physik
expected ';' before numeric constant?

Hallo!

Für mein Spalierobst habe ich eine Bewässerung gebaut. Das Wasser ist in einem hoch gestellten Gartenfass. Über einen selbst gebauten Dauermagnet-Wasserhahn soll das gesammtelte Wasser in Abhängigkeit der Bodenfeuchtigkeit in ein Schläuchlein mit Tropfern fließen, und so den Boden befeuchten

Ein Arduino soll über einen Servo das Stellen realisieren.

Ist der Boden zu trocken, ermittelt das ein capazitiver Soil Moisture Sensor v2.0. Ein Servo schwenkt einen an ihm befestigten Dauermagnet über die Stelle des Dauermagnet-Wasserhahnes, unter dem ein Dauermagnet-Ventil angezogen wird.Somit ist der Weg des Wassers frei.

Ist der Boden feucht genug, schwenkt der Servo seinen Magneten zurück in die Ausgansposition. Das Dauermagnet-Ventil fällt und schließt die Wasserzufuhr.

Schön wäre, wenn der Servo zwischen den Aktionen stromlos sein könnte. Das bekomme ich auch nicht hin.

Ein Arduino soll die Regelung übernehmen.

Vielen Dank Demjenigen, der mir helfen kann.

Mein bisheriger Code ist im folgendem Foto.

#include<Servo.h>

Servo S;

const int SensorPin = A0;

void setup() {

 Serial.begin(9600);

 pinMode (A0, INPUT);

 S.attach(9);

}

void loop() {

               // serieller Monitor geht nicht mit { } hinter if

  int analogWert = analogRead(A0); // Auslesen des analogen Sensorwertes

 Serial.println(analogWert);   // Ausgabe des Wertes auf der seriellen Konsole

 delay(1000); 

 if (analogRead(A0)> 270) // zu trocken   

  {S.write (65);  //Servo geh auf 65 GRad //dies geht nicht 

 delay(6000);}//pendelt 0 -- 65 -- 0 im 6000, 500 Takt

 //Wenn delay (6000) deaktiviert wird geht nichts mehr!

 

 else (analogRead(A0)< 260) ; // zu nass - dies funktioniert

  S.write (0); //Servo geh auf 0 Grad

  delay (500);

  }

Der Code wird kompilliet, aber funktioniert noch nicht zufriedenstellend.

Bild zum Beitrag
Arduino, C (Programmiersprache)

Meistgelesene Fragen zum Thema Arduino