Dotaz začátečníka

Nedaří se vám s projektem a nenašli jste vhodné místo, kde se zeptat? Napište sem.
Pravidla fóra
Tohle subfórum je určeno pro konzultaci ucelených nápadů, popřípadě řešení komplexnějších projektů, které opravdu není možné rozdělit na menší části.
Většinu problémů jde rozdělit na menší a ptát se na ně v konkrétních subfórech.
Odpovědět
maav
Příspěvky: 3
Registrován: 01 bře 2020, 19:33
Reputation: 0

Dotaz začátečníka

Příspěvek od maav » 01 bře 2020, 20:12

S Arduinem začíná a proto omluvte moji otázku.
Snažím se připojit k Wemosu relé. Při testování jsem došel k tomu, že mi digitál reaguje takto:

Spustím jednoduchý skrip:

Kód: Vybrat vše

void setup() {
    // inicializujte sériovou komunikaci na 9600 bitech za sekundu:
    Serial.begin(9600);
}
void loop() {
// přečtu vstup A0:
digitalWrite(3, LOW);
    int sensorValue = analogRead(A0);
    // Převede analogový vstup (od 0 do 1023) na napětí (0 - 5V):
    float voltage = sensorValue * (5.0 / 1023.0);
    // Odešle přečtenou hodnotu:
    Serial.println(voltage);
//    delay(10);
}
Po připojení A0 na 5V a poté na 3,3V ploter vykreslí pěknou křivku:
v1.jpg
Jestliže nastavím D3 na LOW (0) a připojím na A0 pak vykreslí toto:
v2.jpg
Jestliže nastavím D3 na HIGH (1) a připojím na A0 pak vykreslí toto:
v3.jpg
Mohu se prosím zeptat proč je signál tak rozkmitaný?
Děkuji

jankop
Příspěvky: 1029
Registrován: 06 zář 2017, 20:04
Reputation: 0
Bydliště: Brno
Kontaktovat uživatele:

Re: Dotaz začátečníka

Příspěvek od jankop » 01 bře 2020, 20:44

Řekl bych, že buď tam nedáváš správnou logickou úroveň ( máš I/O ve třetím stavu, respektive jako input) nebo měříš jinde, než si myslíš. Chybu děláš určitě. Už vzhledem k tomu, že cpeš do Wemosu 5V, když je na 3,3V. To se klidně už mohl odebrat do křemíkového nebe...
Tak to napětí beru zpět, Wemos má na vstupu ADC dělič.

maav
Příspěvky: 3
Registrován: 01 bře 2020, 19:33
Reputation: 0

Re: Dotaz začátečníka

Příspěvek od maav » 01 bře 2020, 21:01

OK. Děkuji.
Před čtením A0 nastavuji D3. Mělo by to tam snad být.
Co s tím?

jankop
Příspěvky: 1029
Registrován: 06 zář 2017, 20:04
Reputation: 0
Bydliště: Brno
Kontaktovat uživatele:

Re: Dotaz začátečníka

Příspěvek od jankop » 01 bře 2020, 22:07

Zkus třeba tohle, je docela možné, že bez pinMode výstup nenastavíš.

Kód: Vybrat vše

int sensorValue;
float voltage;
void setup() {
  // inicializujte sériovou komunikaci na 9600 bitech za sekundu:
  Serial.begin(9600);
  pinMode(D3, OUTPUT);
}
void loop() {
  // přečtu vstup A0:
  digitalWrite(D3, LOW);
  sensorValue = analogRead(A0);
  // Převede analogový vstup (od 0 do 1023) na napětí (0 - 5V):
  voltage = (float)sensorValue * (5.0 / 1023.0);
  // Odešle přečtenou hodnotu:
  Serial.println(voltage);
  //    delay(10);
}

maav
Příspěvky: 3
Registrován: 01 bře 2020, 19:33
Reputation: 0

Re: Dotaz začátečníka

Příspěvek od maav » 02 bře 2020, 11:31

Děkuji.
Toto zdá se funguje.

Odpovědět

Kdo je online

Uživatelé prohlížející si toto fórum: Majestic-12 [Bot] a 14 hostů