Advertisement
Guest User

Untitled

a guest
Feb 14th, 2016
52
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.47 KB | None | 0 0
  1. #define IMTIS 564
  2. int analogInput = A2;
  3. int inputValue = 0;
  4.  
  5. int timeout = 0;
  6. bool data = true;
  7. bool start = false;
  8. //int zeros = 0;
  9. bool dataArray[IMTIS];
  10. int dataPoint = 0;
  11. bool addressArray[16];
  12. int adrNr = 0;
  13. byte first = 0;
  14. byte invert = 0;
  15. bool currentState;
  16. int brightness = 0;
  17. int vienas = 1;
  18. int led = 9;
  19.  
  20.  
  21. void toggleOnOff() { /////////SITIE TRYS YRA CASE'U ATVEJAI, DABAR ISJUNGTI
  22. //delay(20);
  23. if (currentState == 0 ){
  24. digitalWrite(led, HIGH);
  25. //Serial.print("ON ");
  26. }
  27. else{
  28. digitalWrite(led, LOW);
  29. // Serial.print("OFF ");
  30. }
  31.  
  32. }
  33.  
  34. void brightnessUp(){
  35. if (brightness < 251){
  36. brightness = brightness + 5;
  37. // Serial.print("pasviesejau ");
  38. // Serial.print(brightness);
  39. // Serial.print("\n");
  40. }
  41. }
  42.  
  43. void brightnessDown(){
  44. if (brightness > 4){
  45. brightness = brightness - 5;
  46. // Serial.print("patamsejau");
  47. // Serial.print(brightness);
  48. // Serial.print("\n");
  49. }
  50. else{
  51. // Serial.print("fail");
  52. }
  53. }
  54.  
  55.  
  56.  
  57.  
  58. void setup() {
  59. // put your setup code here, to run once:
  60. Serial.begin(9600);
  61. currentState = 0;
  62. pinMode(led, OUTPUT);
  63. }
  64.  
  65. void loop() {
  66. // put your main code here, to run repeatedly:
  67. inputValue = analogRead(analogInput);
  68. if (inputValue < 1020) {
  69. start = true;
  70. }
  71. if (inputValue > 5){
  72. data = true;
  73. }
  74. else{
  75. data = false;
  76. }
  77.  
  78. if (start && timeout < IMTIS) {
  79. dataArray[dataPoint] = data;
  80. if (dataPoint == 25 && dataArray[dataPoint] == true){ //apsauga nuo triuksmu
  81. dataPoint = 0;
  82. timeout = 0;
  83. start = false;
  84. }
  85. if (dataPoint == 15 && dataArray[dataPoint] == true){ //apsauga nuo triuksmu
  86. dataPoint = 0;
  87. timeout = 0;
  88. start = false;
  89. }
  90. dataPoint++;
  91. timeout++;
  92. }
  93.  
  94. if (timeout == IMTIS) {
  95. timeout = 0;
  96. data = false;
  97. for(int i = 341; i<IMTIS;){
  98. if(dataArray[i] == 1 && dataArray[i+7] == 1){ //data array surenka visas reiksmes, jei yra vienetas ir uz septyniu tasku vel vienetes, tai cia turetu buti ilgas signalas
  99. addressArray[adrNr] = 1; //tas address dabar klaidinantis, cia tiesiog gauti 16 bitu yra
  100. adrNr++;
  101. i = i + 16;
  102. }
  103. else if (dataArray[i] ==1) { //jei po septyniu reiksmiu nulis, tai cia greiciausiai trumpas signalas
  104. addressArray[adrNr]= 0;
  105. adrNr++;
  106. i = i + 6;
  107. }
  108. else { //jei nerado vieneto tai toliau iesko
  109. i++;
  110. }
  111. }
  112. for (int i = 0; i<8; i++){ //isskaidyti bitus i hex'a
  113. if(addressArray[i])
  114. first |= (1<<i);
  115. }
  116. for (int i = 8; i<16; i++){
  117. if(addressArray[i])
  118. invert |= (1<<(i-8));
  119. }
  120. delay(120);
  121. Serial.println(first);
  122. // pasirasyti per switch case'us
  123. // switch (first){
  124. // case 8:
  125. // toggleOnOff();
  126. // currentState = !currentState;
  127. // break;
  128. // case 0x11:
  129. // brightnessUp();
  130. // break;
  131. // case 0x12:
  132. // brightnessDown();
  133. // break;
  134. // default:
  135. // break;
  136. // // Serial.println("nu ka spaudi ble");
  137. // }
  138.  
  139. if (first == 8){
  140.  
  141. if(currentState == 0){
  142. digitalWrite(led, HIGH);
  143. currentState = 1;
  144. }
  145. else{
  146. digitalWrite(led, LOW);
  147. currentState = 0;
  148. }
  149.  
  150. }
  151.  
  152.  
  153. //Serial.print(currentState);
  154.  
  155. }
  156. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement