ESP-01 Analog Input

Gast #7084279
Lesenswert?

Also ich muss nicht unbedingt wissen wie viel anliegt. Einfach ob bzw ob 
nicht...
also kann ich da einfach den esp normal versorgen und dann mit der 
versorgunsspannung über einen taster an den gpio?

Brain 2.0 schrieb:
> Du kannst GPIO1 oder GPIO3 verwenden.

ähm ich habe nur gpio0 und gpio 2.... (ESP-01)

und vertragen die die 3.3V oder nur 1V?
Gast #7084302
Lesenswert?

Ah okay
also vertragen nur gpio 1 und 3 die 3.3V oder auch die 2 und 4? (einfach 
frage fürs verständnis...)

Ich kann wenn ich das richtig verstanden habe jetzt den ESP über 3.3V an 
den 3V3 Pin anschliessen und über GND and Ground... dann um zu schauen 
wann der schalter betätigt ist, den schalter über 3.3V mit TX verbinden?

Das ganze dann über digitalRead(1) abfragen?
Gast #7084431
Lesenswert?

reskl schrieb:
> also vertragen nur gpio 1 und 3 die 3.3V oder auch die 2 und 4? (einfach
> frage fürs verständnis...)

Für solche Dinge verfasst der Hersteller des Controllers ein Datenblatt. 
Da steht ganz genau drin, welcher Pin welche Spannung verträgt. Besorg 
dir das Ding und lies bei den elektrischen Eigenschaften nach. Die 
Absolute Maximum Ratings sind dabei nicht als normale Betriebparameter 
zu verstehen.
Welche Pins des Controllers auf welche Anschlüsse des ESP-01 geführt 
sind, verrät dir der Schaltplan zum Modul.
Gast #7085153
Lesenswert?

ich verstehe gerade nicht wie ich das nun machen muss...

Code:
void setup() {

  Serial.begin(9600);
  delay(1000);
  Serial.println("Serial geladen.");
  pinMode(USRXD, INPUT);
}

void loop() {
  int sensorValue = analogRead(USRXD);
  Serial.println(sensorValue);
  delay(100);
}

Wenn ich den code so auführe habe ich im Serial wie erwartet alle ca 
100ms eine 0 als ausgabe.... Als input möchte ich nun den RX pin vom ESP 
nutzen.... wie muss ich das jetzt anschliessen damit er das erkennt? 
stehe gerade irgendwie auf dem schlauch...
Gast #7085193
Lesenswert?

reskl schrieb:
> wie muss ich das jetzt anschliessen damit er das erkennt?

Du verbindest die Signalquelle mit dem gewünschten Pin und liest dann 
den Status wie üblich mit digitalRead() ein.

AnalogRead funktioniert nur an einem einzigen Pin, nämlich A0. Der ist 
beim ESP-01 Modul aber nicht herausgeführt.

Welchen Pin willst du stattdessen benutzen? Ist er in deinem Aufbau 
wirklich frei? Bist du sicher, dass die Bedingung für das Booten dann 
noch erfüllt ist? Ich frage, weil das beim ESP-01 mangel wirklich freier 
Pins etwas tricky ist. Meine Homepage hast du dir inzwischen hoffentlich 
angeschaut?:Und was ist mit der Doku von Arduino und dem verwendeten 
Arduino Core? Hast du sie gelesen?

http://stefanfrings.de/esp8266/
https://docs.arduino.cc/
https://arduino-esp8266.readthedocs.io/en/latest/

Auf den Seiten steht eigentlich alles, was man dazu wissen muss.
Gast #7085198
Lesenswert?

Wenn du noch keinerlei Erfahrung mit Arduino hast, dann fange mit einem 
Arduino Uno oder Nano an. Die sind am besten dokumentiert und um 
wenigsten kompliziert. Dieses WLAN Dings hat hingegen eine ganze Menge 
Fallstricke.
Gast #7085229
Lesenswert?

1
void setup() {
2

3
  Serial.begin(9600);
4
  delay(1000);
5
  Serial.println("Serial geladen.");
6
  pinMode(USRXD, INPUT);
7
}
8

9
void loop() {
10
  int sensorValue = analogRead(USRXD);
11
  Serial.println(sensorValue);
12
  delay(100);
13
}
Gast #7085241
Lesenswert?

ja ich lese. ich habe verstanden, dass der analoge pin nicht 
herausgeführt wurde. Das ist also ein Fehler im Code. Ich habe jetzt die 
Tips umgesetzt und der code sieht nun so aus:
1
void setup() {
2

3
  Serial.begin(9600);
4
  delay(1000);
5
  Serial.println("Serial geladen.");
6
  pinMode(2, INPUT);
7
}
8

9
void loop() {
10
  int sensorValue = digitalRead(2);
11
  Serial.println(sensorValue);
12
  delay(100);
13
}

was ich aber immernoch nicht verstehe, wie ich jetzt erkenne bzw wie ich 
es anschliessen muss um zu erkennen ob 0 oder 3.3V auf der Leitung 
liegen...
Gast #7085248
Lesenswert?

reskl schrieb:
> int sensorValue = digitalRead(2);

reskl schrieb:
> was ich aber immernoch nicht verstehe, wie ich jetzt erkenne bzw wie ich
> es anschliessen muss um zu erkennen ob 0 oder 3.3V auf der Leitung
> liegen...

Passend zu diesem Code musst du die "Leitung" mit dem Anschluss GPIO2 
verbinden.

Denke daran, dass dieser GPIO2 Pin beim Booten ein Ausgang ist, der zu 
diesem Zeitpunkt nicht auf LOW (0V) gezogen werden darf. Sonst startet 
die Firmware nicht.

Was ist das denn für eine Leitung, wo kommt sie her? Zeichen doch mal 
einen Schaltplan aus dem her vor geht, was du da alles wie miteinander 
verbinden willst. Falls du keinen Schaltplan erstellen kannst, sage das, 
dann empfehle ich dir konkrete einfachere Projekte die dich Schrittweise 
an diese Aufgabe heran führen.
Gast #7085277
Lesenswert?

Aus deiner Antwort lese ich heraus, dass du nicht weißt, was ein 
Stromkreis ist. Wir müssten eigentlich bei den absoluten Grundlagen 
anfangen, Lehrstoff aus der 3. Schulklasse (sorry, ist aber so).

Damit dir der Spaß nicht ganz vergeht, würde ich dir gerne wenigstens 
verraten, wie der Taster anzuschließen ist, doch deine Beschreibung ist 
unklar. Mit OFF/ON/OFF kann ich nichts anfangen. Um welches konkrete 
Produkt geht es?

> ich möchte, dass wenn ich den taster drücke (bzw gedrückt halte) das
> erkennt (1) wird bzw wenn ich ihn wieder loslasse wieder auf 0 zurück
> geht.

Da der GPIO2 Pin beim Start nicht auf LOW (0) liegen darf, geht es nur 
umgekehrt. Im Ruhezustand HIGH (1) und in gedrücktem zustand LOW (0).
Gast #7085297
Lesenswert?

reskl schrieb:
> Also ich habe hier ein Taster (OFF/ON/OFF)
> ich möchte, dass wenn ich den taster drücke (bzw gedrückt halte) das
> erkennt (1) wird bzw wenn ich ihn wieder loslasse wieder auf 0 zurück
> geht.

Na dann schliesst du die eine Seite des Tasters an GPIO2 an und die 
andere Seite an GND.
Du darfst halt den Taster nicht beim Einschalten drücken.
Nicht gedrückt liest du mit digitalRead(2) eine 1, gedrückt eine 0, also 
genau andersrum als du willst. Aber das lässt sich ja per Programm 
korrigieren.
Gast #7085319
Lesenswert?

danke!
habe immer irgendwie gedacht, dass ich da irgendwas mit 3.3V 
anschliessen muss aber das ist ja gar nicht so :)

Was jetzt aber noch ein problem ist, dass sobald ich 1 mal gedrückt habe 
immer auf 0 bleibt...

Also 11111111111111111 drücken 00000000 loslassen 00000000000000

soweit ich das versehe müsste da jetzt irgendwie ein 
pullup/pulldownwiderstand (?) hin?
Beitrag #7085323 wurde von einem Moderator gelöscht.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren