Pavouk Hiwonder

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
luger
Příspěvky: 254
Registrován: 30 dub 2023, 11:06

Re: Pavouk Hiwonder

Příspěvek od luger » 04 úno 2026, 10:44

výsledek:
plechová horní část pavoučka slouží jako elektroda a je jedním drátkem propojená v mém případě na A2. Plocha je cca 150x80 mm. Plech lakovaný, kontakt je na odizolované plošce.
Program:

Kód: Vybrat vše

#include <ADCTouch.h>

const int sensorPin = A2;
int ref;
const int threshold = 30;  // začni třeba na 30, pak doladíš

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

  ref = ADCTouch.read(sensorPin, 150);  // víc vzorků pro citlivost
}

void loop() {
  int diff = ADCTouch.read(sensorPin, 80) - ref;

  // pro ladění:
  Serial.print("diff: ");
  Serial.println(diff);

  if (diff > threshold) {
    // dotyk / blízkost ruky
  }

  delay(50);
}
můj výsledek měření:
vzdálenost ruky cca 5 cm - změna hodnoty 0-1
vzdálenost 3 cm - hodnota trvalá 1
vzdálenost 1 cm - hodnota 3-5
plný dotyk - hodnota 50-80 podle umístění dotyku ruky

je to ok, funguje to.

luger
Příspěvky: 254
Registrován: 30 dub 2023, 11:06

Re: Pavouk Hiwonder

Příspěvek od luger » 17 úno 2026, 11:37

Další vylepšení pavoučka. Jak jistě všichni víte tak zvukové senzory reagují tak na 30 cm. Potřeboval jsem reakci na tlesknutí nebo písknutí alespoň na vzdálenost 3 metry. Vyzkoušel jsem snad už všechno - klíčenky, tleskací žárovky , různé čidla - nejde to upravit pro Arduino protože je nutný zásah do zapojení a to většinou končí zničením.
Ale - zakoupil jsem Waveshare 9534 který má prý leší mikrofon a taky nějaký dvoustupňový zesilovač. Nepoužil jsem analogový výstup ale digitální a nastavil jej potenciometrem na hranici kdy "kontrolní digi LED tak jen pomrkává" - to je hranice mezi zapnutím a vypnutím digi výstupu.
Program pro čtení 1/0 výstupu:

Kód: Vybrat vše

void kontrola_zvuku (){             //----------------- digital vstup pin 2 ------------------ 
    
    // každých 100 ms vyhodnotí intenzitu zvuku
  if (millis() - casStart >= 100) {
    casStart = millis();

    noInterrupts();
    surovaHodnota = pocitadlo_zvuku;
    pocitadlo_zvuku = 0;
    interrupts();

    // mapování 0–100 (0 = ticho, 100 = silný zvuk)
    uroven_zvuku = map(surovaHodnota, 0, 200, 0, 100);

    if (uroven_zvuku < 0) uroven_zvuku = 0;
    if (uroven_zvuku > 100) uroven_zvuku = 100;         //  výstup hodnoty = uroven_zvuku
   }
  }
Funguje to skvěle, na středně silné tlesknutí reaguje i na 3 metry, na písknutí je to o něco méně (neumím pořádně pískat :).

Odpovědět

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 1 host