рдЕрдВрдЧреВрд░ рдорд▓реНрдЯреАрдЯрдЪ

рдореБрдЭреЗ MaKey MaKey рдирд╛рдордХ рдПрдХ рджрд┐рд▓рдЪрд╕реНрдк рдмрд╛рдд рдкрддрд╛ рдЪрд▓реАред

http://makeymakey.com/

рдпрд╣реА рдХрд╛рд░рдг рд╣реИ рдХрд┐ рдореИрдВ рдЕрдореЗрд░рд┐рдХрд┐рдпреЛрдВ рдХрд╛ рд╕рдореНрдорд╛рди рдХрд░рддрд╛ рд╣реВрдВ - рдпрд╣ рдкреНрд░рддрд┐рднрд╛ рдХреЛ рдкреЗрд╢ рдХрд░рдиреЗ рдФрд░ рдФрджреНрдпреЛрдЧрд┐рдХ рдЙрддреНрдкрд╛рджрди рдХреЗ рд▓рд┐рдП рдХрд┐рд╕реА рднреА рд╕рд╛рдзрд╛рд░рдг рдЪреАрдЬ рдХреЛ рд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИред



рдореИрдВрдиреЗ рд╡реАрдбрд┐рдпреЛ рджреЗрдЦрд╛, рдореИрдВ рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЦреБрд╢ рдерд╛ред рд▓реЗрдХрд┐рди рдХрд╣реАрдВ-рдХрд╣реАрдВ рдПрдХ рдмрд╛рд░ рдЦреБрдЬрд▓реА рд╢реБрд░реВ рд╣реБрдИред рдХрдЯреМрддреА рдХреЗ рд▓рд┐рдП рдЪрдврд╝ рдЧрдПред 15 рдорд┐рдирдЯ рдХреЗ рдмрд╛рдж (рдЬрд┐рд╕рдореЗрдВ рд╕реЗ рдкрд╛рдБрдЪ рдорд┐рдирдЯ рдХреЗ рд▓рд┐рдП рдореБрдЭреЗ рдПрдХ рдзреБрдЖрдБ рд╡рд┐рд░рд╛рдо рд▓рдЧрд╛), рдореБрдЭреЗ рдРрд╕рд╛ рдЙрдкрдХрд░рдг рдорд┐рд▓рд╛:



UPD> ... рдХреБрдЫ рд╕рдордп рдмрд╛рджред рдЕрдВрдЧреВрд░ рдорд▓реНрдЯреАрдЯрдЪ рдХреЗ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рдЙрдкрдпреЛрдЧ рдХреЗ рд╕рд╛рде рдПрдХ рдирдпрд╛ рд╡реАрдбрд┐рдпреЛ :-) рд╕реА # рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдХреЗ рд▓рд┐рдП рд╕реНрд░реЛрдд рдХреЛрдб рдФрд░ рдЖрд░реНрдбрд┐рдВрд╕ рдХреЗ рд▓рд┐рдП рдПрдХ рдирдпрд╛ рд╕реНрдХреЗрдЪ рдиреАрдЪреЗ рд░рдЦрд╛ рдЧрдпрд╛ рд╣реИред



рдЕрднрджреНрд░рддрд╛ рдХреЗ рд▓рд┐рдП рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╕рд░рд▓ рд╣реИред рдХреЗрд╡рд▓ 1-50 M needed рдХреЗ рдирд╛рдордорд╛рддреНрд░ рдореВрд▓реНрдп рд╡рд╛рд▓реЗ рдкреНрд░рддрд┐рд░реЛрдзреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ (рдкреНрд░рддреНрдпреЗрдХ рд╕рдВрдкрд░реНрдХ рдХреЗ рд▓рд┐рдП рдПрдХ)ред рдореИрдВрдиреЗ 1 рдореЙрдо рдкрд░ рдХрдЯреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛, рдЬрд┐рд╕рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдХреЗрд╡рд▓ рд╕реНрдкрд░реНрд╢ рдХрд╛ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИред рдпрджрд┐ рдЖрдк 10M рдпрд╛ рдЙрд╕рд╕реЗ рдЕрдзрд┐рдХ рдбрд╛рд▓рддреЗ рд╣реИрдВ - рдпрд╣ рджреВрд░реА рдкрд░ рдХрд╛рдо рдХрд░реЗрдЧрд╛, рдЧреИрд░-рд╕рдВрдкрд░реНрдХред

рдореИрдВрдиреЗ рд╕реНрдХреЗрдЪ рдореЗрдВ рдХреИрдкрд┐рд╕рди рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛, рдЬреЛ рдХрд┐, рд╕рд╕реНрдиреЛ , рд╕рднреА рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

рддрд╛рд░реЛрдВ рдЖрд░реЗрдЦ:



рдирдореВрдиреЗ рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рдореИрдВрдиреЗ рд╕рдмрд╕реЗ рд╕рд░рд▓ рд╕реНрдХреЗрдЪ рдмрдирд╛рдпрд╛ред

#include <CapSense.h>

#define SND_PIN 12 // ,

CapSense key1 = CapSense(7, 5); // 1 7- 5-
CapSense key2 = CapSense(7, 4); // 2 7- 4-
CapSense key3 = CapSense(7, 3); // 3 7- 3-

int range = 200; // , ,
byte button; //
int freq; //

void setup()
{
// 1- .
// ,
key1.set_CS_AutocaL_Millis(0xFFFFFFFF);
}

void loop()
{
long total1 = key1.capSense(30);
long total2 = key2.capSense(30);
long total3 = key3.capSense(30);

button = 0;
if (total1 > range) button |= 1;
if (total2 > range) button |= 2;
if (total3 > range) button |= 4;

switch (button) {
case 1: freq = 200; break ;
case 2: freq = 300; break ;
case 3: freq = 400; break ;
case 4: freq = 500; break ;
case 5: freq = 600; break ;
case 6: freq = 700; break ;
case 7: freq = 800; break ;
default : freq = 0;
}

freq? tone(SND_PIN, freq) : noTone(SND_PIN); //
}

* This source code was highlighted with Source Code Highlighter .
#include <CapSense.h>

#define SND_PIN 12 // ,

CapSense key1 = CapSense(7, 5); // 1 7- 5-
CapSense key2 = CapSense(7, 4); // 2 7- 4-
CapSense key3 = CapSense(7, 3); // 3 7- 3-

int range = 200; // , ,
byte button; //
int freq; //

void setup()
{
// 1- .
// ,
key1.set_CS_AutocaL_Millis(0xFFFFFFFF);
}

void loop()
{
long total1 = key1.capSense(30);
long total2 = key2.capSense(30);
long total3 = key3.capSense(30);

button = 0;
if (total1 > range) button |= 1;
if (total2 > range) button |= 2;
if (total3 > range) button |= 4;

switch (button) {
case 1: freq = 200; break ;
case 2: freq = 300; break ;
case 3: freq = 400; break ;
case 4: freq = 500; break ;
case 5: freq = 600; break ;
case 6: freq = 700; break ;
case 7: freq = 800; break ;
default : freq = 0;
}

freq? tone(SND_PIN, freq) : noTone(SND_PIN); //
}

* This source code was highlighted with Source Code Highlighter .


рдпрджрд┐ рдЖрдк рдЗрд╕ рддрд░рд╣ рд╕реЗ рдХреБрдЫ рдлреНрд▓реИрд╢ рдХрд░рддреЗ рд╣реИрдВ , рддреЛ рдЕрдВрдЧреВрд░ рдХреА рдХреБрдВрдЬрд┐рдпреЛрдВ рд╡рд╛рд▓рд╛ рдПрдХ рдЖрд░реНрдбрд┐рдиреЗрдВрд╕ HID рдХреАрдмреЛрд░реНрдб рдХреА рднреВрдорд┐рдХрд╛ рдореЗрдВ рд╣реЛрдЧрд╛ (рдореИрдВрдиреЗ рдЕрднреА рддрдХ рдХреЛрд╢рд┐рд╢ рдирд╣реАрдВ рдХреА рд╣реИ)ред рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рд▓рд┐рдП, рд╣рд░ Arduinka рдЙрдкрдпреБрдХреНрдд рдирд╣реАрдВ рд╣реИ, рдпрд╣ atmega8u2 рдЪрд┐рдк рдХреЗ рд╕рд╛рде рдПрдХ USB рдирд┐рдпрдВрддреНрд░рдХ рдХреЗ рд░реВрдк рдореЗрдВ рдЖрд╡рд╢реНрдпрдХ рд╣реИ (рдирдпрд╛ Arduino UNO рдЕрднреА рдЗрд╕рдХреЗ рд╕рд╛рде рд╣реИ)ред рдпрд╣ рдЕрдлрд╝рд╕реЛрд╕ рдХреА рдмрд╛рдд рд╣реИ рдХрд┐ рд╣рд╛рде рдореЗрдВ рдХреБрдЫ рднреА рдЙрдкрдпреБрдХреНрдд рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рдЕрдВрдЧреВрд░ рдХреАрдмреЛрд░реНрдб рд╕реЗ рдмрдореНрдмрд░рдореИрди-рдСрдирд▓рд╛рдЗрди рдЦреЗрд▓рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ :-) рдЖрдк рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдПрдХ рдирд░рдо-рдХреБрдВрдЬреА рдХреЛ рдиреАрдЪреЗ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдХрд┐ рдХреАрдбреНрд░реЛрдХреНрд╕ рдХреЛ рдЖрд░реНрдХрд┐рдирд╛ рд╕реЗ рдкрдврд╝реЗрдЧрд╛ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдХреАрдмреЛрд░реНрдб рдИрд╡реЗрдВрдЯ рддрдХ рдкрд╣реБрдВрдЪрд╛рдПрдЧрд╛, рд▓реЗрдХрд┐рди рдпрд╣ рдЕрдм рдирд╣реАрдВ рд╣реИ рддрдм (HID рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЕрднреА рднреА рдЕрдзрд┐рдХ рджрд┐рд▓рдЪрд╕реНрдк рд╣реИ)ред

UPD> рдПрдХ рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдЙрдкрдХрд░рдг рдорд┐рд▓рд╛, рдЦреБрдЬрд▓реА рдмрдВрдж рдХреА, рдЖрд░рд╛рдо рдХрд┐рдпрд╛ред рдореИрдВрдиреЗ MakiMaki рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдФрд░ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдкрдврд╝рд╛ - рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдпрд╣ arduino рдкрд░ рдерд╛ рдХрд┐ рдпрд╣ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ :-)

UPD> рд╕реНрдкреАрдХрд░ рдХреЛ рддреЛрдбрд╝рдирд╛ рджрд┐рд▓рдЪрд╕реНрдк рдирд╣реАрдВ рд╣реИ, рдореБрдЭреЗ рдЕрдкрдиреА рдмреЗрдЯреА рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдордЬрд╝реЗрджрд╛рд░ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ :-) рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЕрдЧрд▓рд╛ рд╡рд┐рд╖рдп рдмрд╕ рдЗрддрдирд╛ рд╣реА рд╣реЛрдЧрд╛ рдХрд┐ рдЕрдЧрд░ рдХреБрдЫ рджрд┐рд▓рдЪрд╕реНрдк рд╣реЛрддрд╛ рд╣реИред

UPD> рдПрдХ рджрд┐рд▓рдЪрд╕реНрдк рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдорд┐рд▓рд╛ - рд╡рд░реНрдЪреБрдЕрд▓ USB рдХреАрдмреЛрд░реНрдб , atmega8u2 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдмрд┐рдирд╛ред рдореБрдЭреЗ рдЗрд╕реЗ рд▓реЗрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рдиреА рд╣реЛрдЧреАред

UPD> рд╣рд╛рдмреНрд░реЛрд╡реНрд╕реНрдХ рдирд╛рдЧрд░рд┐рдХреЛрдВ рдХреЗ рд▓рд┐рдП рдкреНрд░рд╢реНрди - рдХреНрдпрд╛ рдХреЛрдИ рдореБрдЭреЗ рдПрдХ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдмрддрд╛ рд╕рдХрддрд╛ рд╣реИ (рдЕрдзрд┐рдорд╛рдирддрдГ рд╡рд┐рдВрдбреЛрдЬ рдпрд╛ рдХреНрд░реЙрд╕-рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдХреЗ рддрд╣рдд) рдЬреЛ COM рдкреЛрд░реНрдЯ рдХреЛ рдкрдврд╝реЗрдЧрд╛, рдХреБрдЫ рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рд╕рдВрджреЗрд╢ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдЧрд╛ рдФрд░ рдХреАрдкрд░ рдИрд╡реЗрдВрдЯ рдЙрддреНрдкрдиреНрди рдХрд░реЗрдЧрд╛? рдФрд░ рдлрд┐рд░ рдореИрдВ рдЦреБрдж рдЬрд▓реНрджреА рд╕реЗ рдЗрд╕реЗ рдХреБрд▓реНрд▓рд╛ рдирд╣реАрдВ рдХрд░рддрд╛ред

UPD> рддрддреНрдХрд╛рд▓ arduino рдХрд╛ рдЖрджреЗрд╢ рджрд┐рдпрд╛ рдХрд┐ HID рдбрд┐рд╡рд╛рдЗрд╕ рдмреЙрдХреНрд╕ рд╕реЗ рдмрд╛рд╣рд░ рд╣реЛ рдЧрдИред рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдбрд┐рд▓реАрд╡рд░реА рд╡рд┐рдлрд▓ рдирд╣реАрдВ рд╣реЛрдЧреА рдФрд░ рдЖрдЬ рд╣реА рдбрд┐рд▓реАрд╡рд░реА рд╣реЛрдЧреАред рдЬрдм рддрдХ рдореИрдВ рдмрдореНрдмрд░рдореИрди рдирд╣реАрдВ рдЦреЗрд▓рддрд╛, рддрдм рддрдХ рдореИрдВ рд╢рд╛рдВрдд рдирд╣реАрдВ рд╣реБрдЖ (рдФрд░ рдХрд▓ рд╕реЗ рдореИрдВ рднреА рдмрд┐рд╕реНрддрд░ рдкрд░ рдирд╣реАрдВ рдерд╛)ред

UPD> рдЕрдм 8 рдЕрдВрдЧреВрд░ рдЬреБрдбрд╝реЗ рд╣реБрдП рд╣реИрдВ, рд╕рднреА рдЖрдареЛрдВ рдХреЛ рдПрдХ рд╕рд╛рде рдХрд╛рдо рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╡рд┐рдлрд▓рддрд╛рдУрдВ рдХреЗ рд╕рд╛рдеред 5 рдПрдХ рд╕рд╛рде рд╕реНрдкрд░реНрд╢ рдХрд░рдиреЗ рд╕реЗ рдХрд╛рдо рдХрд╛рдлреА рдмрдврд╝ рдЬрд╛рддрд╛ рд╣реИред рдЫрд┐рдкрд╛рдИ рдЖрдЬ рдбрд┐рд▓реАрд╡рд░реА рдХреЗ рд▓рд┐рдП рд░рджреНрдж рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рдХрд▓ рд╣реА рд╣реЛрдЧрд╛ :-(

UPD> рддреЛ ... рд╕рд╛рдЗрдбрдХрд┐рдХ рдХреЗ рд╕реБрдЭрд╛рд╡реЛрдВ рдХреА рдорджрдж рд╕реЗ, рдореИрдВ C # рдкрд░ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рд╕рд╛ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдХреА рд░реВрдкрд░реЗрдЦрд╛ рддреИрдпрд╛рд░ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдерд╛ред Arduino COM рдкреЛрд░реНрдЯ рдкрдврд╝рддрд╛ рд╣реИ, рдХреАрд╕реНрдЯреНрд░реЛрдХреНрд╕ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИ, рдХреАрдмреЛрд░реНрдб рдХреАрд╕реНрдЯреНрд░реЛрдХ рдХрд╛ рдЕрдиреБрдХрд░рдг рдХрд░рддрд╛ рд╣реИред рдЕрднреА рдореИрдВ рд╕рднреА рдЖрда рдЕрдВрдЧреВрд░реЛрдВ рдХреЛ рд▓реЗрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдБрдЧрд╛ рдФрд░ рдлрд┐рд░ рдПрдХ рдирдпрд╛ рд╡реАрдбрд┐рдпреЛ рд▓реВрдВрдЧрд╛ред рдкрд╣рд▓реЗ C # :-) рдореЗрдВ рдХреБрдЫ рд▓рд┐рдЦрд╛

UPD> рд╕реЛрд░реНрд╕ рдХреЛрдб (VS2010, C #)ред рдореИрдВ рд╕реА # рдореЗрдВ рдЕрдлрд╡рд╛рд╣ рдирд╣реАрдВ рдлреИрд▓рд╛рддрд╛, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдХреИрд╕реЗ рд╣реБрдЖ - рдпрд╣ рд╣реБрдЖ :-) рд╕реБрдЭрд╛рд╡реЛрдВ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рд▓рд┐рдпреЛрдирд╛рд░реНрдбреЛ рдзрдиреНрдпрд╡рд╛рдж, рдЕрдиреНрдпрдерд╛ рдореИрдВ рд╕рдлрд▓ рдирд╣реАрдВ рд╣реЛрддрд╛ред рдФрд░ InputSimulator рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреА рдУрд░ рдЗрд╢рд╛рд░рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП GreenGo рдЖрд╡рд╛рд╕ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред

рд╕реЙрдлреНрдЯрд┐рдирд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ COM рдкреЛрд░реНрдЯ (рдХреЛрдИ рд╕реЗрдЯрд┐рдВрдЧ рдирд╣реАрдВ рд╣реИ) рдХреЛ рд╕реБрдирддрд╛ рд╣реИ, рд╕реНрд░реЛрдд (COM11) рдореЗрдВ рдкреЛрд░реНрдЯ рдХрд╛ рдирд╛рдо рд╣рд╛рд░реНрдбрдХреЛрдб рд╣реИред рдпрд╣ рд╡рд╣ рдкреЛрд░реНрдЯ рд╣реИ рдЬрд┐рд╕рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ Arduin рдЙрдкрд▓рдмреНрдз рд╣реИред рдХреЗрд╡рд▓ 6 рдХреБрдВрдЬреА рд╢рд╛рдорд┐рд▓ рд╣реИрдВред

 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using WindowsInput; using System.IO; using System.IO.Ports; namespace WindowsFormsApplication1 { public partial class Form1 : Form { System.IO.Ports.SerialPort newPort; public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { } private void button2_Click(object sender, EventArgs e) { newPort = new SerialPort("COM11", 57600, Parity.None, 8, StopBits.One); newPort.Open(); newPort.DataReceived += new SerialDataReceivedEventHandler(GetArduinoBytes); } public void GetArduinoBytes(object sender, SerialDataReceivedEventArgs e) { string data = newPort.ReadExisting(); string [] arr; int key = 0; arr = data.Split('\r'); try { key = Convert.ToInt32(arr[0]); } catch (System.FormatException) { //    } int key1 = key & 1; int key2 = (key >> 1) & 1; int key3 = (key >> 2) & 1; int key4 = (key >> 3) & 1; int key5 = (key >> 4) & 1; int key6 = (key >> 5) & 1; int key7 = (key >> 6) & 1; int key8 = (key >> 7) & 1; if (key1 == 1) WindowsInput.InputSimulator.SimulateKeyDown(VirtualKeyCode.DOWN); else WindowsInput.InputSimulator.SimulateKeyUp(VirtualKeyCode.DOWN); if (key2 == 1) WindowsInput.InputSimulator.SimulateKeyDown(VirtualKeyCode.UP); else WindowsInput.InputSimulator.SimulateKeyUp(VirtualKeyCode.UP); if (key3 == 1) WindowsInput.InputSimulator.SimulateKeyDown(VirtualKeyCode.LEFT); else WindowsInput.InputSimulator.SimulateKeyUp(VirtualKeyCode.LEFT); if (key4 == 1) WindowsInput.InputSimulator.SimulateKeyDown(VirtualKeyCode.RIGHT); else WindowsInput.InputSimulator.SimulateKeyUp(VirtualKeyCode.RIGHT); if (key5 == 1) WindowsInput.InputSimulator.SimulateKeyDown(VirtualKeyCode.SPACE); else WindowsInput.InputSimulator.SimulateKeyUp(VirtualKeyCode.SPACE); if (key6 == 1) WindowsInput.InputSimulator.SimulateKeyDown(VirtualKeyCode.VK_Z); else WindowsInput.InputSimulator.SimulateKeyUp(VirtualKeyCode.VK_Z); } } } 


UPD> рдФрд░ рдпрд╣рд╛рдБ Arduina рдХреЗ рд▓рд┐рдП рдПрдХ рдирдпрд╛ рд╕реНрдХреЗрдЪ рд╣реИред рд╕реНрдкреАрдХрд░ рдиреЗ рдЪреАрдЦрд╝ рдХреЗ рдирд╛рдЯрдХ рдкрд░ рдЯрд┐рдкреНрдкрдгреА рдХреА, рд╣рдо рдХреЗрд╡рд▓ рдХреБрдВрдЬрд┐рдпреЛрдВ рдХреА рд╕реНрдерд┐рддрд┐ рдХреЛ рдХрдВрд╕реЛрд▓ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВред

 #include <CapSense.h> #define SND_PIN 12 // ,     CapSense key1 = CapSense(5, 2); //  1  5-  5-  CapSense key2 = CapSense(5, 3); //  2  5-  4-  CapSense key3 = CapSense(5, 4); //  3  5-  3-  CapSense key4 = CapSense(5, 6); //  4  5-  3-  CapSense key5 = CapSense(5, 7); //  5  5-  3-  CapSense key6 = CapSense(5, 8); //  6  5-  3-  CapSense key7 = CapSense(5, 9); //  7  5-  3-  CapSense key8 = CapSense(5, 11); //  8  5-  3-  int range = 100; //  ,   unsigned int button = 0, oldButton = 0; //     int freq; //       byte sense = 30; long total1, total2, total3, total4, total5, total6, total7, total8; void setup() { //key1.set_CS_AutocaL_Millis(0xFFFFFFFF); Serial.begin(57600); //   } void loop() { total1 = key1.capSense(sense); total2 = key2.capSense(sense); total3 = key3.capSense(sense); total4 = key4.capSense(sense); total5 = key5.capSense(sense); total6 = key6.capSense(sense); total7 = key7.capSense(sense); total8 = key8.capSense(sense); button = 0; if (total1 > range) button |= 1; if (total2 > range) button |= 2; if (total3 > range) button |= 4; if (total4 > range) button |= 8; if (total5 > range) button |= 16; if (total6 > range) button |= 32; if (total7 > range) button |= 64; if (total8 > range) button |= 128; if (button != oldButton) { Serial.println(button); oldButton = button; } /* if (button) freq = button * 10 + 200; else freq = 0; if (freq) { Serial.println(freq); tone(SND_PIN, freq); } else noTone(SND_PIN); //     */ } 


UPD> рдЯреАрд╡реА рдкрд░ MakiMaki рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред рдореБрдЭреЗ рдЗрд╕ рдХрд╛рд░реНрдпрдХреНрд░рдо рдореЗрдВ "рдореЗрд░реЗ рдЕрдВрдЧреВрд░ рдорд▓реНрдЯреАрдЯрдЪ" рдХреЗ рд╕рд╛рде рднрд╛рдЧ рд▓реЗрдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдордВрддреНрд░рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд░рд╛рдЬрдиреАрддрд┐рдХ рдХрд╛рд░рдгреЛрдВ рд╕реЗ рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝рд╛ :-)

Source: https://habr.com/ru/post/In143928/


All Articles