Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #define IMTIS 564
- int analogInput = A2;
- int inputValue = 0;
- int timeout = 0;
- bool data = true;
- bool start = false;
- //int zeros = 0;
- bool dataArray[IMTIS];
- int dataPoint = 0;
- bool addressArray[16];
- int adrNr = 0;
- byte first = 0;
- byte invert = 0;
- bool currentState;
- int brightness = 0;
- int vienas = 1;
- int led = 9;
- void toggleOnOff() { /////////SITIE TRYS YRA CASE'U ATVEJAI, DABAR ISJUNGTI
- //delay(20);
- if (currentState == 0 ){
- digitalWrite(led, HIGH);
- //Serial.print("ON ");
- }
- else{
- digitalWrite(led, LOW);
- // Serial.print("OFF ");
- }
- }
- void brightnessUp(){
- if (brightness < 251){
- brightness = brightness + 5;
- // Serial.print("pasviesejau ");
- // Serial.print(brightness);
- // Serial.print("\n");
- }
- }
- void brightnessDown(){
- if (brightness > 4){
- brightness = brightness - 5;
- // Serial.print("patamsejau");
- // Serial.print(brightness);
- // Serial.print("\n");
- }
- else{
- // Serial.print("fail");
- }
- }
- void setup() {
- // put your setup code here, to run once:
- Serial.begin(9600);
- currentState = 0;
- pinMode(led, OUTPUT);
- }
- void loop() {
- // put your main code here, to run repeatedly:
- inputValue = analogRead(analogInput);
- if (inputValue < 1020) {
- start = true;
- }
- if (inputValue > 5){
- data = true;
- }
- else{
- data = false;
- }
- if (start && timeout < IMTIS) {
- dataArray[dataPoint] = data;
- if (dataPoint == 25 && dataArray[dataPoint] == true){ //apsauga nuo triuksmu
- dataPoint = 0;
- timeout = 0;
- start = false;
- }
- if (dataPoint == 15 && dataArray[dataPoint] == true){ //apsauga nuo triuksmu
- dataPoint = 0;
- timeout = 0;
- start = false;
- }
- dataPoint++;
- timeout++;
- }
- if (timeout == IMTIS) {
- timeout = 0;
- data = false;
- for(int i = 341; i<IMTIS;){
- 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
- addressArray[adrNr] = 1; //tas address dabar klaidinantis, cia tiesiog gauti 16 bitu yra
- adrNr++;
- i = i + 16;
- }
- else if (dataArray[i] ==1) { //jei po septyniu reiksmiu nulis, tai cia greiciausiai trumpas signalas
- addressArray[adrNr]= 0;
- adrNr++;
- i = i + 6;
- }
- else { //jei nerado vieneto tai toliau iesko
- i++;
- }
- }
- for (int i = 0; i<8; i++){ //isskaidyti bitus i hex'a
- if(addressArray[i])
- first |= (1<<i);
- }
- for (int i = 8; i<16; i++){
- if(addressArray[i])
- invert |= (1<<(i-8));
- }
- delay(120);
- Serial.println(first);
- // pasirasyti per switch case'us
- // switch (first){
- // case 8:
- // toggleOnOff();
- // currentState = !currentState;
- // break;
- // case 0x11:
- // brightnessUp();
- // break;
- // case 0x12:
- // brightnessDown();
- // break;
- // default:
- // break;
- // // Serial.println("nu ka spaudi ble");
- // }
- if (first == 8){
- if(currentState == 0){
- digitalWrite(led, HIGH);
- currentState = 1;
- }
- else{
- digitalWrite(led, LOW);
- currentState = 0;
- }
- }
- //Serial.print(currentState);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement