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   218 / 853
(#) kameleon2 válasza kapu48 hozzászólására (») Ápr 29, 2016 /
 
Szia! Ez a Waveshare 2,8-as már nagy lenne?
(#) kapu48 válasza kameleon2 hozzászólására (») Ápr 29, 2016 /
 
Nem ismerem. De Jónak tünik!
(#) icserny válasza k3gy3tl3n hozzászólására (») Ápr 29, 2016 /
 
Idézet:
„azt erősíti meg bennem hogy a bejövő adatot a terminál értelmezi és hülyeségeket csinál miatta.”
Vezérlő karakterek vételekor mit csináljon? Ez a dolga...
(#) sejtek hozzászólása Ápr 29, 2016 /
 
Sziasztok

Akadt egy olyan problémám, hogy egy kinai nanoval akarok kapcsolgatni egy ssr relét, de nem csinál semmit. A relé 1.8mA -t venne föl, de a nano kimenetén 0.1 mA-t mérek, ami nagyon kevés. Kipróbáltam egy eredeti mega panellal is, ott nincs semmi baj.
Szóval kidobhatom a kínai nanokat és vannem kell helyette eredetit 10x annyiért, vagy velem van valami probléma.
(#) atus1981 válasza sejtek hozzászólására (») Ápr 29, 2016 /
 
Hali!
Egy tranzisztoros vagy fetes fokozat kell a nano és az ssr közé.
Viszont a 0,1 mA elég furcsa, mert én 4mA-rel hajtok ledet nanoról...
(#) sejtek válasza atus1981 hozzászólására (») Ápr 29, 2016 /
 
Nekem is nagyon gyanús. Az is furcsa, hogy ami elvileg 5V az néha 4.6, de van, hogy 3.6. A bemeneten 3 db hőmérő, a kimeneteken pedig 3db ssr relé van. lehet, hogy azok zavarnak be. Kipróbálnám ezt a tranzisztoros fokozatot. Tudnál róla egy rajzot küldeni?
(#) Kovidivi válasza sejtek hozzászólására (») Ápr 30, 2016 / 1
 
Itt inkább a programoddal van gond. Gondolom nem állítottad kimenetnek a lábat, vagy rosszat állítottál be, esetleg később felülírtad. Rakd be a programod.
(#) Tetye válasza sejtek hozzászólására (») Ápr 30, 2016 / 1
 
Tényleg nézd át hogy melyik pint hogy állítod be, nekem rengeteg kínai panel volt már a kezemben most van vagy 6 uno meg 3 mega itthon és az általad vázolt hibát akkor tapasztaltam amikor nagy kapkodva 800 sor közepén kitaláltam hogy hopp kell mégy egy láb
csak épp elfelejtettem az elején kimenetnek definiálni és félnapig kerestem hogy miért nem világít a led rendesen csak parázslik.
Aztán beszúrtam a sort : " pinMode (7, OUTPUT);" , És rögtön működött minden.
(#) gerleimarci válasza atus1981 hozzászólására (») Ápr 30, 2016 /
 
Én leonardoval és unoval 20mA-rel hajtok ledeket, és alig langyosodik.
(#) jeges hozzászólása Ápr 30, 2016 /
 
Sziasztok!
Van valami más megoldás multi funkcios idözitésre vagyis késleltetni szeretnék de főprogram tovább fusson!
Mert ez nem jó fő program meg áll 20s millsec delay(20); az az irja az eepromot minden 5 bites lépésnél ez rövid életü lesz sajnos eepromnak ha ilyen sürün irom !
Lényeg hogy 5 másodperc után mentsen eepromba "brightness" váltózót de a föprogram ne várakoztasa 5 másodperc!
  1. #include <EEPROM.h>
  2. #include <RCSwitch.h>
  3. #include <PWM.h>
  4.  
  5.  
  6. int wirePin = 13;
  7. int diodePin = 10;
  8. int enablePin = 4;
  9.  
  10. int32_t frequency = 100; //frequency (in Hz)
  11.  
  12. int brightness = 0;
  13.  
  14. int brightness_max = 0;
  15.  
  16. #define LED1_Up 9469965      
  17. #define LED1_Down 9469968    
  18.  
  19. #define LED1_max 9469953
  20.  
  21. #define ENABLE_Sniffer true
  22.  
  23.  
  24. RCSwitch mySwitch = RCSwitch();  // Create an instance of RCSwitch
  25.  
  26.  
  27.  
  28.  
  29. void setup() {
  30.  
  31.   mySwitch.enableReceive(0);  // Receiver on inerrupt 0 => PB2 (D 2)  Ain1   RF DATA
  32.  
  33. // pinMode(diodePin, OUTPUT);
  34.  pinMode(enablePin, OUTPUT);
  35.  pinMode(wirePin, OUTPUT);
  36.  
  37.  delay(1000);
  38.  analogWrite(enablePin, 255);
  39.  
  40. InitTimersSafe();
  41.  
  42.  bool success = SetPinFrequencySafe(diodePin, frequency);
  43.  
  44.  // brightness=EEPROM.read(1);
  45.  
  46.  // analogWrite(diodePin, brightness);
  47.  
  48.  
  49.  
  50. }
  51.  
  52.  
  53.  
  54. void loop() {
  55.  
  56.   //delay(1000);
  57.  
  58.  
  59.  
  60.           if(brightness < EEPROM.read(1)) {brightness = brightness+1;} // sofstart led1
  61.            
  62.   pwmWrite(diodePin, brightness);
  63.  
  64.  
  65.            
  66.            delay(30);
  67.            
  68.   if (mySwitch.available()) {
  69.  
  70.     long value = mySwitch.getReceivedValue();
  71.  
  72.     if (value == 0) {
  73.  
  74.     }
  75.     else {
  76.  
  77.       if (ENABLE_Sniffer)
  78.       {
  79.        
  80.      
  81.        
  82.       }
  83.  
  84.       switch (value)
  85.       {
  86.  
  87.  
  88.  
  89.       case LED1_Up:    //9469965
  90.      
  91.          if(brightness < 127) {brightness = brightness+5;}  
  92.          
  93.            
  94.             pwmWrite(diodePin, brightness);
  95.  
  96.             analogWrite(wirePin, 255);
  97.            
  98.             delay(20);
  99.  
  100.             analogWrite(wirePin, 0);
  101.  
  102.             EEPROM.update(1,brightness);
  103.  
  104.             if(brightness < 254 && EEPROM.read(2)) {brightness = brightness+5;}
  105.            
  106.            
  107.       pwmWrite(diodePin, brightness);
  108.          
  109.            
  110.             break;
  111.      
  112.  case LED1_Down:  //9469968
  113.  
  114.   if(brightness > 15) {brightness = brightness-5;}
  115.            
  116.            
  117.             pwmWrite(diodePin, brightness);
  118.  
  119.             analogWrite(wirePin, 255);
  120.            
  121.             delay(20);
  122.  
  123.              analogWrite(wirePin, 0);
  124.              
  125.             EEPROM.update(1,brightness);
  126.  
  127. delay(10);
  128.             EEPROM.update(2,0);
  129.            
  130.           break;
  131.          
  132.  
  133.      case LED1_max: //9469953
  134.  
  135.       if(brightness_max = 1)
  136.  
  137.          EEPROM.update(2,1);
  138.  
  139.          pwmWrite(diodePin, 80);
  140.          delay(500);
  141.          pwmWrite(diodePin, brightness);
  142.          delay(500);
  143.          pwmWrite(diodePin, 80);
  144.          delay(500);
  145.          pwmWrite(diodePin, brightness);
  146.        
  147.          
  148.  
  149.          
  150.  
  151.       break;
  152.     //  default:
  153.            
  154.  
  155.  
  156. }
  157.      
  158.  
  159.  
  160.  
  161.  
  162.     mySwitch.resetAvailable();
  163.  }
  164.  }
  165.  }
A hozzászólás módosítva: Ápr 30, 2016
(#) kapu48 válasza jeges hozzászólására (») Ápr 30, 2016 /
 
Ez a téma, már lerágott csont!

PL.: Bővebben:
(#) eadx hozzászólása Ápr 30, 2016 /
 
Üdv!

Végre sikerült mind a két motort egyszerre működésre bírni viszont egymástól függő működés közben már elfelejtik az oda-vissza járkálást.
A cél az az, hogy az 1 motor 1 oda vissza és megáll, majd a 2 motor oda-vissza és megáll majd csak ekkor indulhat a ciklus előlről. Ez valószinűleg nem is időzítéssel kellene megoldani, de akkor mivel?
Konkrét megoldás érdekelne, ha lehet. Csatolom a kódot.
  1. const int LM1 =2,LM2 = 3,LM3 = 4,LM4 = 5;
  2. const int CW = 8,CCW = 9,CW2 = 10,CCW2 = 11;
  3.  
  4. void setup()
  5. {
  6.   pinMode(LM1, INPUT);
  7.   pinMode(LM2, INPUT);
  8.   pinMode(LM3, INPUT);
  9.   pinMode(LM4, INPUT);
  10.   pinMode(CW, OUTPUT);
  11.   pinMode(CCW, OUTPUT);
  12.   pinMode(CW2, OUTPUT);
  13.   pinMode(CCW2, OUTPUT);
  14. }
  15. void loop()
  16. {
  17.   if(digitalRead(LM2) == LOW) {
  18.       m1_oda();
  19.     }
  20.     if (digitalRead(LM1) == LOW)
  21.     {
  22.       m1_vissza();
  23.     }
  24.     if(digitalRead(LM3) == LOW) {
  25.        m2_oda();
  26.     }
  27.  if (digitalRead(LM4) == LOW)
  28.     {
  29.       m2_vissza();
  30.     }  
  31.   }
  32.                            // motorok függvényei  
  33. void m1_oda( void)
  34.     {
  35.      digitalWrite(CW, LOW);
  36.      digitalWrite(CCW, HIGH);
  37.      Serial.println("m1 oda");
  38.     }
  39. void m1_vissza( void)
  40.   {
  41.      digitalWrite(CCW, LOW);
  42.      digitalWrite(CW, HIGH);
  43.      Serial.println("m1 vissza");
  44.  }            
  45. void m2_oda( void)
  46.    {
  47.      digitalWrite(CW2, LOW);
  48.      digitalWrite(CCW2, HIGH);
  49.      Serial.println("motor2 oda");
  50.    }    
  51. void m2_vissza( void)
  52.     {
  53.      digitalWrite(CCW2, LOW);
  54.      digitalWrite(CW2, HIGH);
  55.      Serial.println("motor2 vissza");
  56.     }
(#) blooor hozzászólása Máj 1, 2016 /
 
Sziasztok!Az Arduino újraindulásakor miként lehet kiküszöbölni, hogy a kimeneteken ne engedjen ki jelt. Vagyis érthetőbben: egy áramszünet után egy arduinora kapcsolt relé ne kezdjen el ki-be kapcsolgatni, amíg újra nem indul teljesen.
(#) kissi válasza blooor hozzászólására (») Máj 1, 2016 / 1
 
Szia!
A kimeneti lábain valószínűleg tranzisztorok vannak, amik kapcsolják a reléket... Induláskor a lábak bemenetként viselkednek, de ezek képesek a tranzisztorokat működtetni, így a relék is működnek. Megoldás: a lábakra tegyél olyan irányban ellenállásokat ( pl. 3k3 ), amelyek a tranzisztorokat zárva tartják ( NPN-nél a GND és a láb közé!) !
Előfordulhat programhiba is ( ha a hardver az előzőek alapján van elkészítve ! ), akkor azt kell kijavítani, de azt csak a program ismeretében lehet !
(#) nooorbi hozzászólása Máj 1, 2016 /
 
Sziasztok!

Arduino nano vezérlőnél ha külön tápról kapja az 5V-ot akkor azt hova szokták kötni?
Abban az esetben ha beépített állapotban(és üzem közben) esetenként gépre is lenne kötve.
(#) kapu48 válasza eadx hozzászólására (») Máj 1, 2016 /
 
Eléggé konkrét?
  1. #define M1  0
  2. #define M2  1
  3.  
  4. bool motor  = M1;    // motor sorrend 1 - 2
  5. bool motor1 = M1;    // oda késszen
  6. bool motor2 = M1;    // vissza késszen
  7.  
  8. const int LM1 =2,LM2 = 3,LM3 = 4,LM4 = 5;
  9. const int CW = 8,CCW = 9,CW2 = 10,CCW2 = 11;
  10.  
  11. void setup()
  12. {
  13.   pinMode(LM1, INPUT);
  14.   pinMode(LM2, INPUT);
  15.   pinMode(LM3, INPUT);
  16.   pinMode(LM4, INPUT);
  17.   pinMode(CW, OUTPUT);
  18.   pinMode(CCW, OUTPUT);
  19.   pinMode(CW2, OUTPUT);
  20.   pinMode(CCW2, OUTPUT);
  21. }
  22. void loop()
  23. {
  24.     if(motor){        // M1    
  25.         if(digitalRead(LM2) == LOW){
  26.           if(motor1 == M1){
  27.             m1_oda();            
  28.           }else{
  29.             m1_stop;
  30.             motor2 = M2;      // 2. mozgás vége
  31.           }                
  32.         }
  33.         if (digitalRead(LM1) == LOW){
  34.           m1_vissza();
  35.           motor1 = M2;      //  1. mozgás vége
  36.         }
  37.    
  38.     }else{        // M2
  39.       if(digitalRead(LM3) == LOW){
  40.         if(motor1 == M1){
  41.           m2_oda();        
  42.         }else{
  43.           m2_stop;
  44.           motor2 = M2;      // 2. mozgás vége
  45.         }
  46.       }
  47.       if (digitalRead(LM4) == LOW){
  48.         m2_vissza();
  49.         motor1 = M2;      //  1. mozgás vége
  50.       }
  51.        
  52.     }
  53.     // Ha mind a két mozgás irány készen
  54.     if((motor1 == M2) && (motor2 == M2)){ // váltás másik motorra
  55.         motor = !motor;
  56.         motor1 = M1;
  57.         motor2 = M1;
  58.     }
  59.   }
  60.                            // motorok függvényei  
  61. void m1_oda( void)
  62.     {
  63.      digitalWrite(CW, LOW);
  64.      digitalWrite(CCW, HIGH);
  65.      Serial.println("m1 oda");
  66.     }
  67. void m1_vissza( void)
  68.   {
  69.      digitalWrite(CCW, LOW);
  70.      digitalWrite(CW, HIGH);
  71.      Serial.println("m1 vissza");
  72.  }
  73. void m1_stop( void)
  74.   {
  75.      digitalWrite(CCW, LOW);
  76.      digitalWrite(CW, LOW);
  77.      Serial.println("m1 stop");
  78.  }            
  79. void m2_oda( void)
  80.    {
  81.      digitalWrite(CW2, LOW);
  82.      digitalWrite(CCW2, HIGH);
  83.      Serial.println("motor2 oda");
  84.    }    
  85. void m2_vissza( void)
  86.     {
  87.      digitalWrite(CCW2, LOW);
  88.      digitalWrite(CW2, HIGH);
  89.      Serial.println("motor2 vissza");
  90.     }
  91. void m2_stop( void)
  92.     {
  93.      digitalWrite(CCW2, LOW);
  94.      digitalWrite(CW2, LOW);
  95.      Serial.println("motor2 stop");
  96.     }
A hozzászólás módosítva: Máj 1, 2016
(#) Kera_Will válasza jeges hozzászólására (») Máj 1, 2016 /
 
Idézet:
„az irja az eepromot minden 5 bites lépésnél ez rövid életü lesz sajnos eepromnak ha ilyen sürün irom !”

Miért kell ezt így ?
Nem elég ha csak a kikapcsoláskor mented el az állapotot?
Addig felesleges a EEPROMOT írogatni.
Használj egy "árnyék" változót amit folyamatosan írogatsz. Majd mikor power off történik akkor írja ki az EEPROPMba a tartalmát.Bekapcsoláskor pedig onnan olvassa ki az "árnyék" változóba amit majd megint írogatod.
POWER OFF eseményt természetesen megfelelő hardveres és szoftveres megoldással kezelni kell.
Erre egy alternatíva : ha tetszik akkor használd ...
A hozzászólás módosítva: Máj 1, 2016
(#) RoliNyh hozzászólása Máj 1, 2016 /
 
Üdvözletem!

Tud valaki arduinohoz nagynyomású (ami kb 10bar -ig mér) nyomásmérő szenzort?
Mert én csak nagyon kis nyomásút találtam.
Ami nekem kellene, az kb 3EFt -nál kezdődik.

Pressure sensor...

Olcsóbban valahogy kivitelezhető ez?

Kompresszorhoz kellene, tehát olyan kivitelben, amire rá lehet barkácsolni egy csövet.
A hozzászólás módosítva: Máj 1, 2016
(#) GPeti1977 válasza RoliNyh hozzászólására (») Máj 1, 2016 /
 
Még ennél is olcsóbban? Ne foglalkozz vele ha 3000 is drága.
Csak ne arduinoval kapcsolgasd a kompresszort mert ha nem kapcsol le akkor felrobbanhat, vagy kell rá lefúvószelep.
(#) jeges válasza Kera_Will hozzászólására (») Máj 1, 2016 /
 
Nincs szoftveres kikapcsolás csak manuális (relés.. kapcsoló) használat ezt kivánja ezért kel menteni a fényerőt de elég szabályzás után 5..10 másodpercel is eepromba....
(#) RoliNyh válasza GPeti1977 hozzászólására (») Máj 1, 2016 /
 
Csak digitális kijelzés miatt akartam, de akkor lehet marad az analóg...
(#) jeges válasza kapu48 hozzászólására (») Máj 1, 2016 /
 
Ez minden inditáskor egyszer lefut ez jo is lene de egyszerüsiteni szeretném a kodot még multi void ki veni!

  1. int seconds = 5; //start seconds
  2. int relayPin=4;
  3.  
  4.  
  5. void setup() {
  6.  
  7.    pinMode(relayPin,OUTPUT);
  8.  
  9.    digitalWrite(relayPin,LOW);
  10. }
  11.  
  12. void loop() {
  13.   Serial.begin(9600);
  14.  
  15.  
  16.  
  17.  
  18.  delay(150);
  19.  
  20.  while (seconds >= 0) {
  21.  
  22.  
  23.  
  24.  (seconds < 10);
  25.  
  26.  stepDown();
  27.  delay(1000);
  28.  }
  29. }
  30.  
  31. void stepDown() {
  32.  if (seconds > 0) {
  33.  seconds -= 1;
  34.  
  35.  } else {
  36. digitalWrite(relayPin,HIGH);
  37.  }
  38. }


sajnos igy nem müködik
  1. int seconds = 5; //start seconds
  2. int relayPin=4;
  3.  
  4.  
  5. void setup() {
  6.  
  7.    pinMode(relayPin,OUTPUT);
  8.  
  9.    digitalWrite(relayPin,LOW);
  10. }
  11.  
  12. void loop() {
  13.  
  14.  
  15.  while (seconds >= 0) {(seconds < 10) delay(1000);}
  16.  
  17.  if (seconds > 0) {seconds -= 1;}
  18.  else {
  19. digitalWrite(relayPin,HIGH);
  20.  }
  21. }
(#) kapu48 hozzászólása Máj 1, 2016 /
 
Ez a sor hibás, és mivel a ciklusban a second nem változík igy soha nem lessz vége!:
  1. És ennek a feltétel vizsgálatnak igy, mi értelme van itt?: "(seconds < 10)"??? Talán ha if(seconds < 10) ... lenne?!
  2.  while (seconds >= 0) {(seconds < 10) delay(1000);}



Az előző példámat nem tudnád kijavítani?
Akkor látnám, hogy meg értetted, az elvét!
A hozzászólás módosítva: Máj 1, 2016
(#) jeges válasza kapu48 hozzászólására (») Máj 1, 2016 /
 
hogy a helyes?
(#) kapu48 válasza jeges hozzászólására (») Máj 1, 2016 /
 
Próbálkoz!
Az írányt megmutattam!

tessék kicsit gondolkozni!
(#) jeges válasza kapu48 hozzászólására (») Máj 1, 2016 /
 
probálom......
fügvény egyik modban sem müködik
1,
  1. while (seconds >= 0) {if (seconds < 10) if (seconds > 0) {seconds -= 1;}
  2.      else {
  3.     digitalWrite(relayPin,HIGH);}

2,
  1. while (seconds >= 0) {(if seconds < 10) delay(1000);}
  2.  
  3.  if (seconds > 0) {seconds -= 1;}
  4.  else {
  5. digitalWrite(relayPin,HIGH);
(#) Kera_Will válasza jeges hozzászólására (») Máj 1, 2016 /
 
Idézet:
„csak manuális (relés.. kapcsoló)”

Erről írtam olvasd el még egyszer
Akkor marad tápfeszültség figyelés , megszakítás láb vezérlés ennek hatására kiírás EEPROMba.
Nem értem ... változóba vagy változó tömbbe miért nem jó írogatni minden állapot változás után?
(#) jeges válasza Kera_Will hozzászólására (») Máj 1, 2016 /
 
Már nem lehet hadweresen változtatni kivitelezés kész és manuális kikapcsolás van !
Ha elveszed az aduino vcc hogy irsz eepromba?
Nem kérdezném ha tundám a megoldást a linkelt kész kodot több napig fejleszgetem csiszolgatam a ledvezérlös meghajtáshoz mire megfelelöen müködik de itt meg akadtam egy felépő hibába eepom irással késleltetésel!
(#) kapu48 válasza jeges hozzászólására (») Máj 1, 2016 /
 
Úgy látom, nálad hiányzik a leg alapvetőbb utasítások ismerete, és helyes alkalmazása!

Mivel én nem vagyok tanár, csak egy amatőr!
Oktatást nem vállalok!
Ajánlom, a fórumon többször ajánlom 60 napos tanfolyamot, vagy a Harsányi R. könyvét!
(#) Kera_Will válasza jeges hozzászólására (») Máj 1, 2016 /
 
Idézet:
„az aduino vcc hogy irsz eepromba?”
Nem veszed el .
Éppen ellenkezőleg hogy tovább adsz neki villanyt ! 1 dióda és +1 puffer kondi ez az ardu tápja a feszlekapcsolás érzékelésére 1 ellenállás + 1 db tranzisztor ami a megszakítás lábra megy ... értelmezd amit írtam ott.
A hozzászólás módosítva: Máj 1, 2016
Következő: »»   218 / 853
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