» elektronik » Arduino »Programvaruimplementering av kapacitiva reläer på Arduino

Kapacitiv Relay Software Implementation på Arduino





Författaren till Instructables under smeknamnet ShaneCunningham föreslår att implementera ett kapacitivt relä på Arduino programvara. Av de ytterligare delarna krävs endast kapacitiva sensorer och motstånd själva. Inga externa maskinvaregeneratorer. I programvara hemlagad involverad detta och detta tredje parts utveckling.

Kapacitiva sensorer - tvåskikts, trepinnar. Mästaren gör dem gör det själv. En kartong med en sida på 300 mm klistras in med folie - det här är utgången som är ansluten till gemensam tråd. Ovanpå placeras en kartongfyrkant med en sida på 100 mm, även limmad med folie. På den delas folielaget i två delar längs en kontur som liknar ett oscillogram av rektangulära pulser. Dessa kommer att vara ytterligare två slutsatser.





Var och en av de tillverkade sensorerna är utrustade med ett 1 MΩ-motstånd. Om det bara finns en sensor, anslut den som visas nedan. Om det finns flera av dem, måste du använda Arduino-slutsatserna - två per sensor - och ta hänsyn till detta i skissen.



Så här gör guiden:






Komponerar en skiss som skickar data som tas från sensorn via det seriella gränssnittet:

///////////////////////////////////////

void loop () {
lång total1 = cs_4_2.capacitiveSensor (30);

Serial.println (total1);

/////////////////////////////////////////

Kod för kommunikation med behandling över serie

* /

int val1 = 0;

int val2 = 0;

int val3 = 0;

int inByte = 0;

CapacitiveSensor cs_4_2 = CapacitiveSensor (4.2); // 1M motstånd mellan stift 4 och 2, stift 2 är sensorpinne, lägg till en tråd och eller folie om så önskas

CapacitiveSensor cs_4_6 = CapacitiveSensor (4.6); // 1M motstånd mellan stift 4 och 6, stift 6 är sensorstift, lägg till en tråd och eller folie

ogiltig installation () {

cs_4_2.set_CS_AutocaL_Millis (0xFFFFFFFF); // stäng av autokalibrering på kanal 1 - precis som ett exempel

cs_4_6.set_CS_AutocaL_Millis (0xFFFFFFFF);

Serial.begin (9600);

pinMode (2, INPUT);

pinMode (6, INPUT);

// pinMode (8, INPUT);

createContact (); // skicka en byte för att upprätta kontakt tills mottagaren svarar

void loop () {

// om vi får en giltig byte, läs inmatningar:

if (Serial.available ()> 0) {

// få inkommande byte:

inByte = Serial.read ();

// lång start = millis ();

lång total1 = cs_4_2.capacitiveSensor (30);

lång total2 = cs_4_6.capacitiveSensor (30);

// lång total3 = cs_4_8.capacitive Sensor (30);

// fördröjning (10);

val1 = karta (totalt 1, 700, 2300, 0, 255); // sensorvärden från kalibrering kartläggs till här - börjar upptäcka mänsklig närhet vid 700 (4 "bort), räcker nästan rörande sensor vid 2300

val2 = karta (totalt2, 30, 175, 0, 255);

// val3 = karta (totalt3, 0, 13000, 0, 255);

Serial.write (val1);

Serial.write (val2);

//Serial.write(val3);

//Serial.print(val1);

// fördröjning (50);

}

void createContact () {

medan (Serial.available () <= 0) {

Serial.print ('A');

fördröjning (300); }


Befälhavaren organiserar ytterligare analys av inkommande information på en PC i Processing-miljön.












Men detta är bara början på experimentet. I framtiden kan du använda den för att behandla signaler från Arduino-sensorer - samma sak, eller, om dess resurser inte räcker, en till.
0
0
0

Lägg till en kommentar

    • lelerxaxaOKdontknowyahoonea
      bossscratchluraJaja-jaaggressivhemlighet
      ledsendansdance2dance3benådningHjälpdrycker
      stoppvännerbragoodgoodvisselpipasvimningsanfalltunga
      rökklapparcraydeclarehånfulldon-t_mentionnedladdning
      hettaRASANDElaugh1mdamötemoskingnegativ
      not_ipopcornstraffalässkrämmalarmrapportersök
      hånthank_youdettato_clueumnikakutöverens
      illabeeeblack_eyeblum3rougeskrytaledan
      censureradepleasantrysecret2hotasegeryusun_bespectacled
      shokrespektlolprevedvälkommenkrutoyya_za
      ya_dobryihjälparene_huliganne_othodiFLUDförbudstänga

Vi rekommenderar att du läser:

Räcka den till smarttelefonen ...