Fórum témák

» Több friss téma
Fórum » Arduino
A klónok CH340 Soros-USB illesztőjének drivere (Letöltés)
Lapozás: OK   435 / 852
(#) kegyetlen19 válasza kegyetlen19 hozzászólására (») Márc 12, 2018 /
 
Kapott eredmény, táblázatban.
(#) Moderátor hozzászólása jeges hozzászólására (») Márc 12, 2018
 
Értelmezhetetlen hozzászólás. Törölve.
(#) kapu48 válasza kegyetlen19 hozzászólására (») Márc 12, 2018 /
 
Megpróbálnám 8 analóg értéket konvertálni 1 bájt-ra.
Utána a tőmben kapott értékeket értelmezni.
  1. /*
  2.   RF Remote Capture sketch
  3.      Written by ScottC 24 Jun 2014
  4.      Arduino IDE version 1.0.5
  5.      Receiver: XY-MK-5V
  6.      Description: Use Arduino to Receive RF Remote signal          
  7.  ------------------------------------------------------------- */
  8.  
  9.  const int dataSize = 500;  //Arduino memory is limited (max=1700)
  10.  byte storedData[dataSize];  //Create an array to store the data
  11.  
  12.  #define ledPin 13           //Onboard LED = digital pin 13
  13.  #define rfReceivePin A0     //RF Receiver data pin = Analog pin 0
  14.  const unsigned int upperThreshold = 100;  //upper threshold value
  15.  const unsigned int lowerThreshold = 80;  //lower threshold value
  16.  int maxSignalLength = 255;   //Set the maximum length of the signal
  17.  int dataCounter = 0;    //Variable to measure the length of the signal
  18.  unsigned long startTime=0;  //Variable to record the start time
  19.  unsigned long endTime=0;    //Variable to record the end time
  20.  unsigned long signalDuration=0; //Variable to record signal reading time
  21.  
  22.  
  23.  void setup(){
  24.   Serial.begin(9600);
  25.   pinMode(ledPin, OUTPUT);    
  26.  
  27.   /* The following code will only run ONCE --------------
  28.   ---Press the reset button on the Arduino to run again-- */
  29.  
  30.   while(analogRead(rfReceivePin)<1){
  31.       //Wait here until a LOW signal is received
  32.       startTime=micros();  //Update start time with every cycle.  
  33.   }
  34.   digitalWrite(ledPin, HIGH);  //Turn LED ON
  35.  
  36.  
  37.   //Read and store the rest of the signal into the storedData array
  38.   for(int i=0; i<dataSize; i=i+2){
  39.    
  40.     //Identify the length of the LOW signal---------------LOW
  41.     dataCounter=0; //reset the counter
  42.     while(analogRead(rfReceivePin)>upperThreshold && dataCounter<maxSignalLength){
  43.       dataCounter++;
  44.     }
  45.     storedData[i]=dataCounter;
  46.    
  47.     //Identify the length of the HIGH signal---------------HIGH
  48.     dataCounter=0;//reset the counter
  49.     while(analogRead(rfReceivePin)<lowerThreshold && dataCounter<maxSignalLength){
  50.       dataCounter++;
  51.     }
  52.     storedData[i+1]=dataCounter;
  53.    
  54.     //Any readings between the two threshold values will be ignored.
  55.     //The LOW or HIGH signal length must be less than the variable "maxSignalLength"
  56.     //otherwise it will be truncated. All of the HIGH signals and LOW signals combined
  57.     //must not exceed the variable "dataSize", otherwise it will be truncated.
  58.     //The maximum number of signals is 1700 - if you try to extend this variable to a higher
  59.     //number than 1700 - then the Arduino will freeze up and sketch will not work.
  60.     //-------------------------------------------------------------
  61.   }
  62.  
  63.   endTime=micros();  //Record the end time of the read period.
  64.   signalDuration = endTime-startTime;
  65.  
  66.   digitalWrite(ledPin, LOW);//Turn LED OFF
  67.  
  68.   //Send report to the Serial Monitor
  69.   Serial.println("=====================");
  70.   Serial.print("Read duration: ");
  71.   Serial.print(signalDuration);
  72.   Serial.println(" microseconds");
  73.   Serial.println("=====================");
  74.   Serial.println("LOW,HIGH");
  75.   delay(20);
  76.  
  77.   byte digitData[dataSize/8];  //Create an array to store the data
  78.   byte bytes1 = 0;
  79.   byte bit_ = 0;
  80.   unsigned int Bytes = 0;
  81.   for(int i=0; i<dataSize; i=i+2){
  82.     Serial.print(storedData[i]);
  83.     // 8 analóg érték konvertálása 1 bájt-ra
  84.     if(storedData[i]>0){ // 1 bit osztályozás
  85.       if(storedData[i]>5){
  86.         bytes1 |= 1 << bit_;
  87.       }
  88.       if(++bit_ >7){    // 1 Bytes tárolása
  89.         bit_ = 0;
  90.         digitData[Bytes] = bytes1;
  91.         Serial.print("Bytes: ");
  92.         Serial.println(digitData[Bytes]);
  93.         ++Bytes;
  94.       }
  95.     }
  96.     Serial.print(",");
  97.     Serial.println(storedData[i+1]);
  98.     delay(20);
  99.   }
  100.  }
  101.  
  102.  void loop(){
  103.    //Do nothing here
  104.  }
(#) kegyetlen19 válasza kapu48 hozzászólására (») Márc 12, 2018 /
 
Köszi a tanácsokat, de ez már nekem magas. Csak az alapokat ismerem az Arduino témában.
(Ctrl+C – Ctrl+V ez megy nekem.)
Azért csináltam 3 új tesztet, a változtatásokkal.
(#) kapu48 válasza kapu48 hozzászólására (») Márc 12, 2018 /
 
Kimaradt a változó törlése:
  1. ...
  2. digitData[Bytes] = bytes1;
  3. bytes1 = 0;   // <-- ezt szurdbe
  4. ...
A hozzászólás módosítva: Márc 12, 2018
(#) bahrtzs hozzászólása Márc 12, 2018 /
 
Sziasztok!
Segítségre lenne szükségem***.
Abszolút kezdő vagyok az arduino témában, bár a mostani projektben már módosítottam egy dolgot, de egynél viszont elakadtam. Egy hozzáértőnek szerintem "1-2" katt/sor és máris működne, amit szeretnék.
***
A lényeg röviden:
Van egy PWM kimenetem kb 490Hz két nyomógombbal, amit itt : https://cfpmanfredini.wordpress.com/2013/01/14/controllo-di-un-led-...a-pwm/ találtam.
A lényeg, hogy szeretnék egy hasonló megvalósítást úgy, hogy szeretnék egy plusz gombot, amit ha megnyomok, akkor az általam meghatározott értéket kijelezné + a (led) kimeneten megjelenne az a PWM érték.
Pl 1 vagy 2 másodpercre, vagy amit később meghatározok. Már annyit sikerült megoldanom, hogy a gombot és az értéket beírtam, viszont az időtartamot nem sikerült belőni, és ebben kérném bárki segítségét.
A másik nagy gondom, hogy viszonylag sürgős lenne.
Előre is köszönöm, üdv: Zsolt color=red***[][/color]
A hozzászólás módosítva: Márc 14, 2018
Moderátor által szerkesztve
(#) kegyetlen19 válasza kapu48 hozzászólására (») Márc 12, 2018 /
 
Valami alakul.
26db számból álló számsort kapok, ami mindig ugyanolyan sorrendben egymás után van. De többszöri próbálkozás után is csak egyszer volt meg a számsor, összes száma megjelenítve. Átlagban csak 15-20 szám van meg a számsorból. És nagyritkán nem is az elsővel kezdődik. Valamiért nem stabil.
(#) RoliNyh válasza kegyetlen19 hozzászólására (») Márc 12, 2018 /
 
Na most lehet hogy hülyeséget mondok, de nem lehet, hogy ugrókódos az adás?
Persze egy olcsó kapásjelzőnél nem hinném, hogy szükség volna rá.
Bár ki tudja, ha sok van egymás mellett, még a "szomszédnak" is bejelezne, ha horogra akad valami...

Meg egyébként az is elkébzelhető, hogy az adód és a vevőd nincs pontosan egy frekvenciára hangolva,
így mikor épp "összerezonál", akkor fogsz valamit, amikor meg nem, akkor nem.
Vagy esetleg valami interferencia is felléphet.
A hozzászólás módosítva: Márc 12, 2018
(#) kegyetlen19 válasza RoliNyh hozzászólására (») Márc 12, 2018 /
 
Meglehet, hogy ugrókódos, de még odáig sem jutottunk, hogy a RCswitch libraries-el megjeleníthető értéket kapjunk. Az már csak a jövő titka, hogy ha ugrókódos, akkor mi lesz a megoldás rá.
A frekvenciával nem hiszem, hogy gond lenne, mert azért kezd valami kialakulni.
(#) kegyetlen19 válasza bahrtzs hozzászólására (») Márc 12, 2018 /
 
Egy lehetséges megoldás, ha az nem probléma, hogy a program futása leáll a várakozási idő időtartalmára.
  1. const int nyomogomb = 11;   //a fix érték nyomogombja
  2. const int idole = 9;        //a várkozási idő csökkentésének nyomogombja
  3. const int idofel = 10;      //a várkozási idő növelésének nyomogombja
  4. int valtozo = 1000;         //várkozási idő milliszekundumban (1 másodperc)
  5. int lux2 = 0;               //
  6.  
  7. void setup() {
  8.  
  9.   pinMode (nyomogomb, INPUT_PULLUP);
  10.   pinMode (idole, INPUT_PULLUP);
  11.   pinMode (idofel, INPUT_PULLUP);
  12.  
  13. }
  14.  
  15. void loop() {
  16.  
  17.  if (digitalRead (nyomogomb) == LOW){
  18.   lux = lux2;           //lux értékének rögzítése
  19.   lux = 123;            //általad megadott érték
  20.   analogWrite (LED1, lux);
  21.   lcd.setCursor (0,1);
  22.   lcd.print ("lux=");
  23.   lcd.print (lux);
  24.   delay (valtozo);      //általad beállított várkozási idő
  25.   lux2 = lux;           //lux értékének visszaállítása
  26.   analogWrite (LED1, lux);
  27.  }
  28.  
  29.  if (digitalRead (idofel) == LOW){
  30.   valtozo = valtozo + 100;        //lépési egység
  31.   if (valtozo == 5100){           //max. késleltetési idő
  32.     valtozo = 5000;
  33.     delay (50);
  34.   }
  35.  }
  36.  
  37.  if (digitalRead (idole) == LOW){
  38.   valtozo = valtozo - 100;
  39.   if (valtozo < 0){
  40.     valtozo = 0;
  41.     delay (50);
  42.   }
  43.  }
  44. }
(#) tbarath válasza bahrtzs hozzászólására (») Márc 12, 2018 /
 
Ha sürgősen nem találsz valakit, akkor tedd fel valahova a kapcsolást és a kódodat, aztán megpróbálunk segíteni. Nem tűnik űrtechnikának a dolog, de nem egyértelmű hogy mit akarsz. Ha egy új gomb megnyomására 1 másodpercre akarod átütni valamire a pwm kimenetet, akkor valami ilyesmi lenne a kód:

  1. #define LED1 3  //Uscita LED
  2. #define LED1 3  //Uscita LED
  3. #define pdown 11  //Pulsante DOWN
  4. #define pup 12  //Pulsante UP
  5. #define pX 10  //uj gomb
  6. #define luxX 128
  7. #define timeX 1000 //millisec
  8.  
  9. int lastLux = 0;
  10. unsigned long switchBackTime = 0;
  11. int lux = 0;    //Luminosità LED
  12.  
  13. void setup() {
  14.   pinMode (LED1, OUTPUT);
  15.   pinMode (pdown, INPUT_PULLUP);
  16.   pinMode (pup, INPUT_PULLUP);
  17.   pinMode (pX, INPUT_PULLUP);
  18.   Serial.begin (9600);
  19. }
  20.  
  21. void loop() {
  22.         Serial.print (digitalRead(pdown));
  23.         Serial.println (digitalRead(pup));
  24.         if ( 0 == switchBackTime){
  25.                 if (digitalRead(pup) == LOW){
  26.                         lux = lux + 1;
  27.                         if (lux == 255){
  28.                                 lux = 254;
  29.                         }
  30.                 }
  31.                 if (digitalRead(pdown) == LOW){
  32.                         lux = lux - 1;
  33.                         if (lux < 0){
  34.                                 lux = 0;
  35.                         }
  36.                 }
  37.                 if (digitalRead(pX) == LOW){
  38.                         lastLux = lux;
  39.                         lux = luxX;
  40.                         switchBackTime = millis() +timeX;
  41.                 }
  42.         }
  43.         else{
  44.                 if (millis() > switchBackTime){
  45.                         lux = lastLux;
  46.                         switchBackTime = 0;
  47.                 }
  48.         }
  49.         analogWrite (LED1, lux);
  50.         delay (10);
  51. }


Fordul, de nem teszteltem. A honlapon levő kódból készült, és amíg le nem telt az 1 sec az X gomb megnyomása után addig letiltja a gombokat.
(#) pisti hozzászólása Márc 12, 2018 /
 
A vezérlő egy Mega.
Fordítókorong
(#) proba válasza kegyetlen19 hozzászólására (») Márc 12, 2018 /
 
Lehet nem ugrókódos, egyszerűen a forgás sebességét is közli a vevővel. Az meg ugye soha nem azonos. Lehet ha egy pár vett jel oszcilloszkóp képét egymás alá teszed, hamarabb fogsz egymást fedő bitmintát, szabályokat találni. Fontos, hogy valami jól azonosítható ponttal kezdődjön. Pl hosszú pihenés utáni első megmozdítás.
(#) kapu48 válasza kegyetlen19 hozzászólására (») Márc 13, 2018 /
 
Átrendeztem az értékek kiíratását.
Így talán jobban olvasható lesz az eredmény.
  1. /*
  2.   RF Remote Capture sketch
  3.      Written by ScottC 24 Jun 2014
  4.      Arduino IDE version 1.0.5
  5.      Receiver: XY-MK-5V
  6.      Description: Use Arduino to Receive RF Remote signal          
  7.  ------------------------------------------------------------- */
  8.  
  9.  const int dataSize = 500;  //Arduino memory is limited (max=1700)
  10.  byte storedData[dataSize];  //Create an array to store the data
  11.  
  12.  #define ledPin 13           //Onboard LED = digital pin 13
  13.  #define rfReceivePin A0     //RF Receiver data pin = Analog pin 0
  14.  const unsigned int upperThreshold = 100;  //upper threshold value
  15.  const unsigned int lowerThreshold = 80;  //lower threshold value
  16.  int maxSignalLength = 255;   //Set the maximum length of the signal
  17.  int dataCounter = 0;    //Variable to measure the length of the signal
  18.  unsigned long startTime=0;  //Variable to record the start time
  19.  unsigned long endTime=0;    //Variable to record the end time
  20.  unsigned long signalDuration=0; //Variable to record signal reading time
  21.  
  22.  
  23.  void setup(){
  24.   Serial.begin(9600);
  25.   pinMode(ledPin, OUTPUT);    
  26.  
  27.   /* The following code will only run ONCE --------------
  28.   ---Press the reset button on the Arduino to run again-- */
  29.  
  30.   while(analogRead(rfReceivePin)<1){
  31.       //Wait here until a LOW signal is received
  32.       startTime=micros();  //Update start time with every cycle.  
  33.   }
  34.   digitalWrite(ledPin, HIGH);  //Turn LED ON
  35.  
  36.  
  37.   //Read and store the rest of the signal into the storedData array
  38.   for(int i=0; i<dataSize; i=i+2){
  39.    
  40.     //Identify the length of the LOW signal---------------LOW
  41.     dataCounter=0; //reset the counter
  42.     while(analogRead(rfReceivePin)>upperThreshold && dataCounter<maxSignalLength){
  43.       dataCounter++;
  44.     }
  45.     storedData[i]=dataCounter;
  46.    
  47.     //Identify the length of the HIGH signal---------------HIGH
  48.     dataCounter=0;//reset the counter
  49.     while(analogRead(rfReceivePin)<lowerThreshold && dataCounter<maxSignalLength){
  50.       dataCounter++;
  51.     }
  52.     storedData[i+1]=dataCounter;
  53.    
  54.     //Any readings between the two threshold values will be ignored.
  55.     //The LOW or HIGH signal length must be less than the variable "maxSignalLength"
  56.     //otherwise it will be truncated. All of the HIGH signals and LOW signals combined
  57.     //must not exceed the variable "dataSize", otherwise it will be truncated.
  58.     //The maximum number of signals is 1700 - if you try to extend this variable to a higher
  59.     //number than 1700 - then the Arduino will freeze up and sketch will not work.
  60.     //-------------------------------------------------------------
  61.   }
  62.  
  63.   endTime=micros();  //Record the end time of the read period.
  64.   signalDuration = endTime-startTime;
  65.  
  66.   digitalWrite(ledPin, LOW);//Turn LED OFF
  67.  
  68.   //Send report to the Serial Monitor
  69.   Serial.println("=====================");
  70.   Serial.print("Read duration: ");
  71.   Serial.print(signalDuration);
  72.   Serial.println(" microseconds");
  73.   Serial.println("=====================");
  74.   Serial.println("LOW,HIGH");
  75.   delay(20);
  76.  
  77.   byte digitData[dataSize/(2*8)];  //Create an array to store the data
  78.   byte bytes1 = 0;
  79.   byte bit_ = 0;
  80.   unsigned int Bytes = 0;
  81.   unsigned int sorszam = 0;
  82.   for(int i=0; i<dataSize; i=i+2){
  83.     Serial.print(storedData[i]);
  84.  
  85.     Serial.print(",");
  86.     Serial.println(storedData[i+1]);
  87.    // delay(20);
  88.  
  89.         // 8 analóg érték konvertálása 1 bájt-ra
  90.     if(storedData[i]>0 && storedData[i+1]<110){ // 1 bit osztályozás
  91.       if(storedData[i]>5){
  92.         bytes1 |= 1 << bit_;
  93.       }
  94.       bit_++;
  95.       if(bit_ >7){    // 1 Bytes tárolása
  96.         bit_ = 0;
  97.         digitData[Bytes] = bytes1;
  98.         bytes1 = 0;
  99.         Serial.print(sorszam);
  100.         sorszam++;
  101.         Serial.print(" Bytes: ");
  102.         Serial.println(digitData[Bytes]);
  103.         ++Bytes;
  104.       }
  105.     }
  106.   }
  107.  }
  108.  
  109.  void loop(){
  110.    //Do nothing here
  111.  }
(#) jeges hozzászólása Márc 13, 2018 /
 
kegyetlen19!
Kapás jelződbe rakj egy ilyet fix kódot küld ASK ....

Bővebben: Link
(#) Gabó hozzászólása Márc 13, 2018 /
 
Elakadtam egy apró dologban.
Van 3 PWM kimenetem, amit szeretnék 3 különböző gombbal ki ill bekapcsolni.
Külön külön meg is van a program rész, de egybegyúrva nem akar működni.
Egy példát kérhetnék valakitől, hogy hogy induljak el? Kerestem guglin is, de szerintem nem jó kulcsszavakkal, mert mindenféle változatot kaptam, csak ami nekem kéne olyat nem.
(#) vargham válasza Gabó hozzászólására (») Márc 13, 2018 /
 
Meddig jutottál el? Forráskód?
(#) tbarath válasza Gabó hozzászólására (») Márc 13, 2018 /
 
Tedd fel a programot
(#) bahrtzs válasza kapu48 hozzászólására (») Márc 13, 2018 /
 
Szia Kapu48!
Köszönöm szépen a segítséged! Mivel tartozom?
(#) bahrtzs válasza tbarath hozzászólására (») Márc 13, 2018 /
 
Szia tbarath!
Köszönöm szépen a segítséged! Mivel tartozom?
(#) bahrtzs válasza kegyetlen19 hozzászólására (») Márc 13, 2018 /
 
Szia Kegyetlen19!
Köszönöm szépen a segítséged! Mivel tartozom?
(#) bahrtzs hozzászólása Márc 13, 2018 /
 
Illetve! Adatmentéssel foglalkozom, ha esetleg tudok segíteni valamiben... Kérdezz, hívj vagy írj!

viber, whatsup.... egyebek
(#) Gabó válasza tbarath hozzászólására (») Márc 13, 2018 /
 
Igaz ez csak 2 gombra van egyenlőre:
  1. const int  buttonPin = 7;    // the pin that the pushbutton is attached to
  2. const int ledPin = 12;       // the pin that the LED is attached to
  3. const int  buttonPin2 = 8;    // the pin that the pushbutton is attached to
  4. const int ledPin2 = 13;       // the pin that the LED is attached to
  5.  
  6. int buttonPushCounter = 0;   // counter for the number of button presses
  7. int buttonState = 0;         // current state of the button
  8. int lastButtonState = 0;     // previous state of the button
  9. int buttonPushCounter2 = 0;   // counter for the number of button presses
  10. int buttonState2 = 0;         // current state of the button
  11. int lastButtonState2 = 0;     // previous state of the button
  12.  
  13.  
  14. void setup() {
  15.  
  16.   pinMode(buttonPin, INPUT);
  17.   pinMode(ledPin, OUTPUT);
  18.   pinMode(buttonPin2, INPUT);
  19.   pinMode(ledPin2, OUTPUT);
  20.  
  21. }
  22.  
  23.  
  24. void loop() {
  25.  
  26.   buttonState = digitalRead(buttonPin);
  27.   buttonState2 = digitalRead(buttonPin2);
  28.  
  29.  
  30.   if (buttonState != lastButtonState) {
  31.         if (buttonState == HIGH) {
  32.             buttonPushCounter++;
  33.           }
  34.         delay(150);
  35.   }
  36.  
  37.   if (buttonState2 != lastButtonState2) {
  38.         if (buttonState2 == HIGH) {
  39.             buttonPushCounter2++;
  40.           }
  41.         delay(150);
  42.   }
  43.   lastButtonState = buttonState;
  44.   lastButtonState2 = buttonState2;
  45.  
  46.   if (buttonPushCounter % 4 == 0) {
  47.     digitalWrite(ledPin, HIGH);
  48.   } else {
  49.     digitalWrite(ledPin, LOW);
  50.   }
  51.  
  52. if (buttonPushCounter2 % 4 == 0) {
  53.     digitalWrite(ledPin2, HIGH);
  54.   } else {
  55.     digitalWrite(ledPin2, LOW);
  56.   }
  57. }


Ez meg egy kis részlet a PWMhez:
  1. const int knobPin1 = 1; //Red LED control
  2. const int knobPin2 = 2; //Green LED control
  3. const int knobPin3 = 3; //Blue LED control
  4.  
  5. const int drivePin1 = 9;//Red LED drive
  6. const int drivePin2 = 10;//Green LED drive
  7. const int drivePin3 = 11;//Blue LED drive
  8.  
  9. int knobValue1 = 0;
  10. int knobValue2 = 0;
  11. int knobValue3 = 0;
  12.  
  13. void setup() {
  14.  
  15. pinMode(drivePin1, OUTPUT);
  16.    pinMode(drivePin2, OUTPUT);
  17.    pinMode(drivePin3, OUTPUT);
  18. }
  19.  
  20. void loop() {
  21.  
  22. // read the variable resistors, convert it to 0 - 255
  23.    knobValue1 = analogRead(knobPin1) / 4;
  24.    knobValue2 = analogRead(knobPin2) / 4;
  25.    knobValue3 = analogRead(knobPin3) / 4;
  26.    
  27.    analogWrite(9, knobValue1);
  28.    analogWrite(10, knobValue2);
  29.    analogWrite(11, knobValue3);
  30.  
  31.    int knobPin1 = map(knobValue1,0,255,0,100);
  32.    lcd.setCursor(5,1);
  33.    lcd.print(knobPin1);
  34.    lcd.print ("%");
  35.    lcd.print(" ");
  36.    delay(1);
  37.  
  38.    int knobPin2 = map(knobValue2,0,255,0,100);
  39.    lcd.setCursor(10,1);
  40.    lcd.print(knobPin2);
  41.    lcd.print ("%");
  42.    lcd.print(" ");
  43.    delay(1);
  44.  
  45.    int knobPin3 = map(knobValue3,0,255,0,100);
  46.    lcd.setCursor(15,1);
  47.    lcd.print(knobPin3);
  48.    lcd.print ("%");
  49.    lcd.print(" ");
  50.    delay(1);
  51.  
  52. }


Persze még vannak benne egyéb sallangok, azokat kiszedtem.
(#) kapu48 válasza kegyetlen19 hozzászólására (») Márc 13, 2018 /
 
Várom a tesztelés eredményét a javított kóddal!
Addig is:
Szerintem 24 bit a hasznos jel hossz a LOW szinten, a 25. páros HIGH hossza 107 – 108 jelzi az elválasztást.
Ezt a 25. LOW, HIGH párost lehetne szinkronizálásra használni, viszont a kódból ki kellene hagyni.

(A vételbe bekerülő zajokat (hibákat) is kezelni kellene valahogy!)
(#) kapu48 válasza bahrtzs hozzászólására (») Márc 13, 2018 /
 
Tudtommal én a te témádhoz nem szóltam hozzá!?
(#) bujan hozzászólása Márc 13, 2018 /
 
Tisztelt Fórumozók!
Egy működő DZ09 okosórából van egy kiváló tft kijelzőm. Életre e lehet kelteni Arduinoval. A tipusát nem tudtam visszakeresni, ezért fordúltam Hozzátok.
(#) tbarath válasza bahrtzs hozzászólására (») Márc 13, 2018 / 1
 
Semmivel, szívesen. De ha nagyon akarod, akkor ott a hozzászólásom fejlécében egy felfelé mutató ujj, ha nyomd meg
(#) tbarath válasza Gabó hozzászólására (») Márc 13, 2018 /
 
Kell 3 nyomógomb az 5-6-7 pin-ek és a föld közé kötve. Megnyomásra kikapcsolja a LED-et, következő megnyomásra bekapcsolja. Tesztelve nincs, de fordul. Az lcd-s részeket kikommenteztem, mert anélkül nem fordult.
Viszont sanszos, hogy prellegni fog, én a végére tennék egy nagyobb delay-t.


  1. const int knobPin1 = 1; //Red LED control
  2. const int knobPin2 = 2; //Green LED control
  3. const int knobPin3 = 3; //Blue LED control
  4.  
  5. const int drivePin1 = 9;//Red LED drive
  6. const int drivePin2 = 10;//Green LED drive
  7. const int drivePin3 = 11;//Blue LED drive
  8.  
  9. const int buttonPin1 = 5;//Red LED drive
  10. const int buttonPin2 = 6;//Green LED drive
  11. const int buttonPin3 = 7;//Blue LED drive
  12.  
  13. bool ledEnabled1 = true;
  14. bool ledEnabled2 = true;
  15. bool ledEnabled3 = true;
  16.  
  17. int knobValue1 = 0;
  18. int knobValue2 = 0;
  19. int knobValue3 = 0;
  20.  
  21. void setup() {
  22.         pinMode(drivePin1, OUTPUT);
  23.         pinMode(drivePin2, OUTPUT);
  24.         pinMode(drivePin3, OUTPUT);
  25.  
  26.         pinMode(buttonPin1, INPUT_PULLUP);
  27.         pinMode(buttonPin2, INPUT_PULLUP);
  28.         pinMode(buttonPin3, INPUT_PULLUP);
  29. }
  30.  
  31. void loop() {
  32.         // read the buttons
  33.         if (LOW == buttonPin1){
  34.                 ledEnabled1 = !ledEnabled1;}
  35.         if (LOW == buttonPin2){
  36.                 ledEnabled2 = !ledEnabled2;}
  37.         if (LOW == buttonPin3){
  38.                 ledEnabled3 = !ledEnabled3;}
  39.  
  40.         // read the variable resistors, convert it to 0 - 255
  41.         knobValue1 = analogRead(knobPin1) / 4;
  42.         knobValue2 = analogRead(knobPin2) / 4;
  43.         knobValue3 = analogRead(knobPin3) / 4;
  44.  
  45.         if (ledEnabled1){
  46.                 analogWrite(drivePin1, knobValue1);}
  47.         else{
  48.                 analogWrite(drivePin1, 0);}
  49.         if (ledEnabled2){
  50.                 analogWrite(drivePin2, knobValue2);}
  51.         else{
  52.                 analogWrite(drivePin2, 0);}
  53.         if (ledEnabled3){
  54.                 analogWrite(drivePin3, knobValue3);}
  55.         else{
  56.                 analogWrite(drivePin3, 0);}
  57.  
  58.         int knobPin1 = map(knobValue1,0,255,0,100);
  59.         /*lcd.setCursor(5,1);
  60.         lcd.print(knobPin1);
  61.         lcd.print ("%");
  62.         lcd.print(" ");*/
  63.         delay(1);
  64.  
  65.         int knobPin2 = map(knobValue2,0,255,0,100);
  66.         /*lcd.setCursor(10,1);
  67.         lcd.print(knobPin2);
  68.         lcd.print ("%");
  69.         lcd.print(" ");*/
  70.         delay(1);
  71.  
  72.         int knobPin3 = map(knobValue3,0,255,0,100);
  73.         /*lcd.setCursor(15,1);
  74.         lcd.print(knobPin3);
  75.         lcd.print ("%");
  76.         lcd.print(" ");*/
  77.         delay(1);
  78. }
A hozzászólás módosítva: Márc 13, 2018
(#) kegyetlen19 válasza jeges hozzászólására (») Márc 13, 2018 /
 
Azzal elrontanám az „adatátvitelt”. Ne tudnám használni az eredeti vevőegységet. az eredetivel párhuzamosan egy plusz vevőt akarok csinálni, világítás kapcsoltatására.
(#) kegyetlen19 válasza bahrtzs hozzászólására (») Márc 13, 2018 / 1
 
Természetesen, semmivel, ha tudunk segítünk.
Következő: »»   435 / 852
Bejelentkezés

Belépés

Hirdetés
XDT.hu
Az oldalon sütiket használunk a helyes működéshez. Bővebb információt az adatvédelmi szabályzatban olvashatsz. Megértettem