potřeboval bych pomoc vytvořit kód.
Situace: v divadle dělám zvukaře. Potřebuji aby mi zmáčknuté tlačitko na jevišti spustilo zadanou klávesu v PC ( zvukové studio ).
Příklad - herec u dveří zmáčkne tlačítko dá přes relé signál do Leonarda - ten zmáčkne v PC klávesu T nebo P a pustí se zvuk zvonku z PC . Protože je to na jeviště cca 30 metrů, tak mám připojený zdroj 24VDC ( kvůli odporu kabelu - 5V by asi signál nezvládl ),
který pošle přes tlačítko signál do polovodičového relé. Z relé přes výstup NO pošlu signál do desky Leonardo . Mám dvě tlačítka - takže dva vstupy.
Potebuji spustit jedním tlačítkem klávesu T , druhým klávesu P . Klávesa T - pin 2 , klávesa P - pin 3 .
Potřebuji ale aby mi šli zvuky pustit i společně. Zkoušel jsem nějaké hotové programy, ale ty mají zásadní chybu. Je tam delay, zmáčknutí klávesy se při malém delay opakuje , při velkém delay se zas klávesa zaznamená se zpožděním.
Já potřebuji vstup delay IN - max 10 ms - klávesa se musí zmáčknout hned a jen jednou - aby zvuk nejel opakovaně. To znamená Impulz na hranu - i kdyby herec držel tlačítko 3 sekundy - zvuk to pořád pustí jen jeden.
Můžete mi prosím někdo pomoct???
Děkuji Toto jsem zkoušel, ale není to dobré:
Kód: Vybrat vše
#include <Keyboard.h>
void setup()
{
Serial.begin(9600);
pinMode(2, INPUT_PULLUP);
pinMode(3, INPUT_PULLUP);
digitalWrite(2, HIGH);
digitalWrite(3, HIGH);
Keyboard.begin();
}
void loop()
{
if (digitalRead(2) == LOW)
{
Keyboard.write('T'); // send a 'T' to the computer via Keyboard HID
delay(1000); // delay so there aren't a kajillion z's
}
if (digitalRead(3) == LOW)
Keyboard.write('P'); // send a 'P' to the computer via Keyboard HID
delay(1000); // delay so there aren't a kajillion z's
Keyboard.end();
}