рдЖрдкрдХрд╛ рджрд┐рди рд╢реБрдн рд╣реЛ!
рдЫрд╣ рдорд╣реАрдиреЗ рд╕реЗ рдЕрдзрд┐рдХ рд╕рдордп рддрдХ рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рд╕рд╕реНрддрд╛ 150 рдорд┐рдореА рдЪреАрдиреА рдЗрд▓реЗрдХреНрдЯреНрд░реЙрдирд┐рдХ рдмрд╛рд░ рд╣реИ, рдЬрд┐рд╕рдХреЗ рдирд┐рд░реНрджреЗрд╢реЛрдВ рдореЗрдВ "рдбрд┐рдЬрд┐рдЯрд▓ рдЗрдВрдЯрд░рдлрд╝реЗрд╕" рд╡рд╛рдХреНрдпрд╛рдВрд╢ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИред рдХрдВрдкреНрдпреВрдЯрд░ рдкрд░ рдЖрдЙрдЯрдкреБрдЯ рдХреА рдХреНрд╖рдорддрд╛ рдиреЗ рдореБрдЭреЗ рддреБрд░рдВрдд рджрд┐рд▓рдЪрд╕реНрдкреА рджреА, рд▓реЗрдХрд┐рди рдореИрдВ рдЗрд╕ рдЙрдкрд▓рдмреНрдзрд┐ рдХреЗ рд▓рд┐рдП рдЕрднреА рдкрд░рд┐рдкрдХреНрд╡ рдерд╛ред
рдкреНрд░рд╛рд░рдВрдн рдореЗрдВ, рдкреНрд░реЗрд░рдгрд╛ рд╕рд┐рд░реНрдл рдЬрд┐рдЬреНрдЮрд╛рд╕рд╛ рдереА, "рдРрд╕рд╛ рд╣реА рд╣реЛ!" рдФрд░ "рдЕрдЪрд╛рдирдХ рдХреЛрдИ рдкреВрдЫреЗрдЧрд╛, рд▓реЗрдХрд┐рди рдореЗрд░реЗ рдкрд╛рд╕ рд╣реИ!", рдмрд╛рдж рдореЗрдВ (рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ "рдпрд╣ рдирд┐рдХрд▓рд╛!") рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдШрд░-рдирд┐рд░реНрдорд┐рдд рд╕реАрдПрдирд╕реА рдорд╢реАрди рдЙрдкрдХрд░рдг рдХреЗ рд╕рд╛рде рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдерд╛ред
рдкреГрд╖реНрдарднреВрдорд┐
рдирд╛рдпрдХ , рдЙрд╕рдХреА рдХрдо рд▓рд╛рдЧрдд (рд▓рдЧрднрдЧ $ 8) рдХреЗ рдмрд╛рд╡рдЬреВрдж, рд╣рд╛рд▓рд╛рдВрдХрд┐, рдПрдХ рдмрд╣реБрдд рд╣реА рд╕рдЯреАрдХ рдЙрдкрдХрд░рдг рд╣реИ:

рдСрдкрд░реЗрд╢рди рдХрд╛ рд╕рд┐рджреНрдзрд╛рдВрдд: рдХреИрдкреЗрд╕рд┐рдЯрд┐рд╡ рд╕реЗрдВрд╕рд░ред
рд╕рдм рдХреБрдЫ рдмрдбрд╝реЗ (рдмрд╛рд░ рд╕реНрдХреЗрд▓) рдХреЗ рд╕рд╛рде рдЫреЛрдЯреА рдкреНрд▓реЗрдЯ (рдмрд╛рд░ рдХреЗ рдкреНрд░рдореБрдЦ) рдХреЗ рдЖрдВрджреЛрд▓рди рдХреЗ рд╕рд╛рде рдЬреБрдбрд╝рд╛ рд╣реБрдЖ рд╣реИ, рдЬрдмрдХрд┐ рдмрдбрд╝реА рдкреНрд▓реЗрдЯ рдХреЗ рдЕрдкрд░рд┐рд╡рд░реНрддрд┐рдд рд╣рд┐рд╕реНрд╕реЗ рдХреЛ рдЪрд╛рд░реНрдЬ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрди рдкреНрд▓реЗрдЯреЛрдВ рджреНрд╡рд╛рд░рд╛ рдЧрдард┐рдд рд╕рдВрдзрд╛рд░рд┐рддреНрд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдмрд╣рдиреЗ рд╡рд╛рд▓рд╛ рдЪрд╛рд░реНрдЬ рдЫреЛрдЯреА рдкреНрд▓реЗрдЯ рдХреЗ рдЖрдВрджреЛрд▓рди рдХреЗ рд▓рд┐рдП рдЖрдиреБрдкрд╛рддрд┐рдХ рд╣реИред рдХреБрдЫ рдЗрд╕ рддрд░рд╣ред
рдЦреЛрдЬ
рдбрд┐рдЬрд┐рдЯрд▓ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП рд╢реБрд░реБрдЖрддреА рдЦреЛрдЬреЛрдВ рд╕реЗ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рдХрдИ рд▓реЛрдЧреЛрдВ рдиреЗ рдЗрд╕реЗ рджреЗрдЦрд╛, рдХреБрдЫ рдХреЛ рднреА рдкрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХреЛрдИ рднреА рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдирд╣реАрдВ рдЬрд╛рдирддрд╛ рд╣реИред
рдЧреИрд░-рд░реВрд╕реА-рднрд╛рд╖рд╛ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдЧрд╣рди рдЦреЛрдЬ рдиреЗ рдЕрдзрд┐рдХ рдЙрддреНрдкрд╛рджрдХ рдкрд░рд┐рдгрд╛рдо рдкреНрд░рд╛рдкреНрдд рдХрд┐рдПред рдкрд╣рд▓реЗ рдРрд╕рд╛ рд▓рдЧрддрд╛ рдерд╛ рдХрд┐ рд╕рдм рдХреБрдЫ рдХрд╛рдлреА рд╕рд░рд▓ рдФрд░ рд╕реНрдкрд╖реНрдЯ рдерд╛, рдпреВрдЯреНрдпреВрдм рдкрд░ рд▓рд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЬрд┐рд╕реЗ рдСрд╕реАрд▓реЛрд╕реНрдХреЛрдк рджреНрд╡рд╛рд░рд╛ рдЪрдмрд╛рдпрд╛ рдЧрдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдХреЛрдИ рдЕрдВрддрд┐рдо рдФрд░ "рд╕рд╣реА рджреВрд░" рд╡рд┐рдХрд▓реНрдк рдирд╣реАрдВ рдерд╛ред
рдЗрд╕рд▓рд┐рдП, рдореБрдЦреНрдп рд╕рдорд╕реНрдпрд╛ рдЬрд╛рдирдХрд╛рд░реА рдХреА рдЦреЛрдЬ рдереАред
рджреВрд╕рд░реА рд╕рдорд╕реНрдпрд╛ рдереА рдЗрд╕ рдХрдиреЗрдХреНрдЯрд░ рдХреЗ рдкреНрд▓рдЧ рдХрд╛ рдирд┐рд░реНрдорд╛рдг (рдЬреЛ рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдПрдХ рдХрдиреЗрдХреНрдЯрд░ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдмреЛрд░реНрдб рдкрд░ рд╕рд┐рд░реНрдл рдирдВрдЧреЗ рдЯреНрд░реИрдХ рд╣реИрдВ)ред рдЬрд┐рджреНрджреА рд╕рдВрдкрд░реНрдХ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рдереЗред рдЕрдВрдд рдореЗрдВ, рдореИрдВрдиреЗ рдПрд▓рдкреАрдЯреА рдкреЛрд░реНрдЯ рд╕реЗ рдЗрд░реЗрдЬрд╝рд░ рдкрдВрдЬреЗ рдХреЗ рдПрдХ рдЯреБрдХрдбрд╝реЗ рдореЗрдВ рдЫрдбрд╝реА рдХрд░рдиреЗ рдХрд╛ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛рдпрд╛ред рдЯреБрдХрдбрд╝рд╛ рдЕрд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рд╣реЛ рдЧрдпрд╛, рд▓реЗрдХрд┐рди рдпрд╣ рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рдХрд╛рдлреА рдЙрдкрдпреБрдХреНрдд рдерд╛ред рднрд╡рд┐рд╖реНрдп рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдЖрд╡рд╢реНрдпрдХ рд░реВрдк рд╕реЗ рдмреЛрд░реНрдб рдХреЛ рд╕реАрдзреЗ рдорд┐рд▓рд╛рдк рдХрд░рдиреЗ рдФрд░ рдЕрдкрдиреЗ рдХрдиреЗрдХреНрдЯрд░ (рдорджрд░рдмреЛрд░реНрдб рд╕реЗ рдкрд┐рди рд╕реАрдбреА-рдЗрди) рдХрд╛ рдЙрддреНрдкрд╛рджрди рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ред
рдирд┐рд░реНрдгрдп
рдЗрдВрд╕реНрдЯреНрд░рдХреНрд╢рдВрд╕ рдбреЙрдЯ рдХреЙрдо рдкрд░
рдПрдХ рд▓реЗрдЦ рдкрд░ рдареЛрдХрд░ рдЦрд╛рдиреЗ рдХреЗ рдмрд╛рдж рдЗрд╕ рдЙрдкрд▓рдмреНрдзрд┐ рдХреЛ рджреЛрд╣рд░рд╛рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред
рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВ рдХрдореНрдкрд╛рд╕ рдФрд░ рдХрдиреЗрдХреНрд╢рди рдЖрд░реЗрдЦ рдкрд░ рд╕рдВрдкрд░реНрдХреЛрдВ рдХреЗ рд╕реНрдерд╛рди рдХреЗ рд╕рд╛рде рд╡рд╣рд╛рдВ рд╕реЗ рдЯрд╛рдБрдХреЗ рд╡рд╛рд▓реА рддрд╕реНрд╡реАрд░реЛрдВ рдХреЛ рд▓рд╛рдКрдБрдЧрд╛ (рдореИрдВ рдЦреБрдж рдХреЛ рдлрд┐рд░ рд╕реЗ рдЬреЛрдбрд╝рдиреЗ рдХрд╛ рдмрд┐рдВрджреБ рдирд╣реАрдВ рджреЗрдЦреВрдБрдЧрд╛, рд▓реЗрдХрд┐рди рдореЗрд░рд╛ рдЬреИрд╕рд╛ рд╣реЛрдирд╛ рдЖрдо рддреМрд░ рдкрд░ рдЕрдХреНрд╖рдореНрдп рд╣реИ:
рдкрд┐рдирд╛:
рдбреНрд░рд╛рдЗрд╡рд┐рдВрдЧ:
рд╡реЛрд▓реНрдЯреЗрдЬ рд╕реЗ рдорд┐рд▓рд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдЕрдиреБрд╢рдВрд╕рд┐рдд рдХреЗ рд░реВрдк рдореЗрдВ 200 рдУрдо рдЕрд╡рд░реЛрдзрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ред 10uF рдореЗрдВ рдХреЛрдИ рд╕рдВрдзрд╛рд░рд┐рддреНрд░ рдирд╣реАрдВ рдерд╛ рдФрд░ рдореИрдВрдиреЗ рдореГрдд рдорджрд░рдмреЛрд░реНрдб рд╕реЗ 100uF рдорд┐рд▓рд╛рдк рд▓рдЧрд╛рдпрд╛ред
рдкрд░рд┐рдгрд╛рдо
рдЯрд╛рдВрдХрд╛ рд▓рдЧрд╛рдиреЗ рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдХреЗ рдмрд╛рдж, рдореИрдВрдиреЗ рд╕реНрдХреЗрдЪ рд▓рд┐рдЦрдирд╛ рд╢реБрд░реВ рдХрд░ рджрд┐рдпрд╛ред рд╡реИрд╕реЗ, рдмреНрд░реЗрдбрдмреЛрд░реНрдб рдХреА рдЕрдиреБрдкрд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдореИрдВ рдЙрд╕реА рдорджрд░рдмреЛрд░реНрдб рд╕реЗ, рдЖрдИрдбреАрдИ рдкреЛрд░реНрдЯ рд╕реЗ "рдкрд╛рд▓рдирд╛" рдкрд░ рд╕рд░реНрдХрд┐рдЯ рдХреЛ рдЗрдХрдЯреНрдард╛ рдХрд░рдХреЗ рд╕реНрдерд┐рддрд┐ рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓ рдЧрдпрд╛ред
рдЙрдкрд░реЛрдХреНрдд рд▓реЗрдЦ рдореЗрдВ рджрд┐рдП рдЧрдП рд╕реНрдХреЗрдЪ рдиреЗ рдмрд┐рдирд╛ рдХрд┐рд╕реА рдкреНрд░рд╢реНрди рдХреЗ рдХрд╛рдо рдХрд┐рдпрд╛, рд▓реЗрдХрд┐рди рд╕рдВрддреБрд╖реНрдЯрд┐ рдирд╣реАрдВ рджреАред
рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рд╕реЗ рдЪреАрдиреА рд╕реНрдХреЗрдЪ рдиреЗ "рддреБрд░рдВрдд" рдХрд╛рдо рдХрд░рдиреЗ рд╕реЗ рдЗрдирдХрд╛рд░ рдХрд░ рджрд┐рдпрд╛, рд▓реЗрдХрд┐рди рдмрд╣реБрдд рдЕрдзрд┐рдХ рдЧрдВрднреАрд░ рдкреНрд░рднрд╛рд╡ рдмрдирд╛рдпрд╛, рдЬрд┐рд╕рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдпрд╣ рдПрдХ рдЧрдВрднреАрд░ "рдкрд░рд┐рд╖реНрдХрд░рдг" рд╣реБрдЖред
рдпрд╣рд╛рдБ рдпрд╣ рдЖрдпрд╛ рд╣реИ (рдпрд╛ Arduino UNO рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╕реНрдХреЗрдЪ, рд╕рдВрд╕реНрдХрд░рдг IDE 0022):
//CyberKot ( ... ! Shadow) // Arduino, COM- // int dataIn = 11; // , int clockIn = 2; // clock, , ( attachInterrupt) int isin = 0; //=1 =0 int isfs = 0; // int index; // unsigned long xData, oData; // ( ) int ledPin = 13; // 13 (, , ) int ledState = LOW; // long previousMillis = 0; // long interval = 500; // long previousGetMillis = 0; long Timeout = 8; // float stringOne; // char charBuf[5]; char charBuf2[8]; void setup(){ digitalWrite (dataIn, 1); digitalWrite (clockIn, 1); pinMode (dataIn, INPUT); // dataIn pinMode (clockIn, INPUT); // clock 2 attachInterrupt(0,getBit,RISING); // clock 2 Serial.begin(9600); delay(500); index = 0; xData = 0; oData = 999; } void loop(){ if ((index !=0) && (millis() - previousGetMillis > Timeout) ) { // index = 0; xData = 0; }; if (index >23) { // if (oData !=xData) { /* , , if (isin==1){ // Serial.print("inch: "); stringOne =xData*5/10000.00000; stringOne *=pow(-1,isfs); Serial.println(floatToString(charBuf2,stringOne,5,5)); }else { // Serial.print("mm: "); stringOne =xData/100.00; stringOne *=pow(-1,isfs); Serial.println(floatToString(charBuf,stringOne,2,5)); }; */ if (isin==1){ // if (isfs==1){ // Serial.print("inch: -"); }else { Serial.print("inch: "); } stringOne =xData*5/10000.00000; Serial.println(floatToString(charBuf2,stringOne,5,5)); }else { // if (isfs==1){ // Serial.print("mm: -"); }else { Serial.print("mm: "); } stringOne =xData/100.00; Serial.println(floatToString(charBuf,stringOne,2,5)); }; }; oData =xData; index=0; xData=0; }; if (millis() - previousMillis > interval) { // previousMillis = millis(); if (ledState == LOW) ledState = HIGH; else ledState = LOW; digitalWrite(ledPin, ledState); } } void getBit(){ // previousGetMillis=millis(); if(index < 20){ if(digitalRead(dataIn)==1){ xData|= 1<<index; } } else { if (index==20) // isfs=digitalRead(dataIn); if (index==23) // isin=digitalRead(dataIn); }; index++; } // float char * floatToString(char * outstr, double val, byte precision, byte widthp){ // , , ( ), char temp[16]; byte i; // double roundingFactor = 0.5; unsigned long mult = 1; for (i = 0; i < precision; i++) { roundingFactor /= 10.0; mult *= 10; } temp[0]='\0'; outstr[0]='\0'; if(val < 0.0){ strcpy(outstr,"-\0"); val = -val; } val += roundingFactor; strcat(outstr, itoa(int(val),temp,10)); // if( precision > 0) { strcat(outstr, ".\0"); // unsigned long frac; unsigned long mult = 1; byte padding = precision -1; while(precision--) mult *=10; if(val >= 0) frac = (val - int(val)) * mult; else frac = (int(val)- val ) * mult; unsigned long frac1 = frac; while(frac1 /= 10) padding--; while(padding--) strcat(outstr,"0\0"); strcat(outstr,itoa(frac,temp,10)); } // ( ) if ((widthp != 0)&&(widthp >= strlen(outstr))){ byte J=0; J = widthp - strlen(outstr); for (i=0; i< J; i++) { temp[i] = ' '; } temp[i++] = '\0'; strcat(temp,outstr); strcpy(outstr,temp); } return outstr; }
рдкрд░рд┐рдгрд╛рдо
рдкрд░рд┐рдгрд╛рдо рд╕реЗ рд╕рдВрддреБрд╖реНрдЯ, рдореИрдВрдиреЗ рдЕрдВрддрд┐рдо рдлреЛрдЯреЛ рдмрдирд╛рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛, рдФрд░ рдкреНрд░рднрд╛рд╡ рдХреЗ рд▓рд┐рдП рдереЛрдбрд╝рд╛ "рдмреЛрд╕реА" рд╡рд┐рдЬреНрдЮрд╛рдкрди рджрд┐рдпрд╛:

рдЕрдВрддрднрд╛рд╖рдг
рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рд╡рд┐рд╡рд░рдг рдореЗрдВ рджрд┐рд▓рдЪрд╕реНрдк рдкреНрд▓рд╕ рдХреЗ рдПрдХ рдЬреЛрдбрд╝реЗ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рднрд╡рд┐рд╖реНрдп рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд░реЛрддреНрд╕рд╛рд╣рди рд╣реИ
- рдлрд╛рд╕реНрдЯ рдореЛрдб (50 рд╣рд░реНрдЯреНрдЬ рдмрдирд╛рдо рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдореЛрдб рдореЗрдВ 3 рд╣рд░реНрдЯреНрдЬ)
- рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг "рдкреВрд░реНрдг" рд╕реНрдерд┐рддрд┐
- рд╕реЙрдлреНрдЯреАрдХреНрд╕ "рдЬреАрд░реЛ" рдФрд░ "рдореЛрдб"
[рд▓рд┐рдВрдХ]