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   221 / 853
(#) Kovidivi válasza jeges hozzászólására (») Máj 2, 2016 / 1
 
Itt senki sem kap fizetést, ha segít. Mindenki a saját szabadidejét használja fel, ha segít. Ennyi erővel aludhatna, filmezhetne, de inkább másnak a problémáján agyal. És általában az kap segítséget, aki szépen kérdez, kulturáltan ír (nagy betűs mondatkezdés, helyesírás, pont vessző használata), nem kötöszködik, tisztelettudó. Azért nem kapsz teljes kódot, mert már kaptál segítséget rengeteg embertől. Én pl. leírtam neked szavakban, csak ki kellett volna cserélni a ha szót if-re, és néhány zárójelet beírni. Ha látnánk, hogy te is teszel a dologért, és nem csak követelőzöl, szívesebben segítenénk...
(#) jeges válasza eadx hozzászólására (») Máj 2, 2016 /
 
Mire gondolsz?
Mire kell példa téma cselekmény?
(#) jeges válasza Kovidivi hozzászólására (») Máj 2, 2016 /
 
Nagyon embere válogatja ez a témát valaki segit valaki nem de ez válaszobol egyböl kiderül legtöbször!
Sajnos nekem csak 2 nyelvem a magyar anak is örülök hogy enyire irom de joban beszélem valaki ezt is kiközösit ez miat is vagy szoba sem ál velem még mailban sem....
(#) eadx válasza jeges hozzászólására (») Máj 2, 2016 /
 
Biztosan velem van a baj, de nem nagyon értem, hogy fog működni esetemben 2 dc motor. attól, hogy tudom a ledet villogtatni. Vagy be tudom kapcsolni a serial monitor kiíratást. Persze már talán értem a lokális és a globális változó fogalmát, de az igazságtábla értelmezése azért messze van ettől.
(#) Kovidivi válasza jeges hozzászólására (») Máj 2, 2016 /
 
Ha a helyesírás nem megy, legalább pontot, vesszőt, kérdőjelet, tagolt mondatokat használj. Egész mondatokat írj, gondolom az anyanyelveden is érthetően, szépen beszélsz/írsz. Ajánlom, hogy nézd át a hozzászólásom az előző oldalról, és próbáld meg úgy.
(#) jeges válasza Kovidivi hozzászólására (») Máj 2, 2016 /
 
teljes kod megvan amit nagy nehezen össze hoztam csak minta példákbol de van egy funkcio ami nem ment végképen eepromos kérdésekbe....
  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. }
(#) Kovidivi válasza eadx hozzászólására (») Máj 2, 2016 /
 
Foglald össze a problémádat, hogy ne kelljen mindenkinek visszaolvasnia, keresgélnie, mi is a gond.
(#) jeges válasza Kovidivi hozzászólására (») Máj 2, 2016 /
 
visszatérve a te elvedhez tényleg ide nem tudom megoldani de leirtam miér a kikapcsoláskor mentést pasiv alkatrésze pusz beépitésekel ez tényleg szoftverböl kel!
(#) jeges válasza Kovidivi hozzászólására (») Máj 2, 2016 /
 
Ha meg is akarod érteni az arduinos programozást hagy a francba a szakzsargon matematikai kiejtéseket bele fogsz gabajodni szakifejezésekbe ami a ezel foglalkozo legtöbb irodalom igy van leirva!
Jozan paraszti ész ahogy könyen meg jegyez valamit hogy megtanuld.....
(#) eadx válasza Kovidivi hozzászólására (») Máj 2, 2016 /
 
Az a probléma, hogy 2 dc motort kellene vezérelni,de egymás után. Az már megoldódott, hogy a végállás kapcsolók közt oda-vissza járjanak csak az egymás függőségi viszonya nem.
Az 1 motor 1 oda- vissza után álljon meg, majd a kettes motor is csináljon 1 oda-visszát és álljon meg, majd kezdődjön minden előlről.
  1. const int LM1 =2,LM2 = 3,LM3 = 4,LM4 = 5; // végállás kapcsolók
  2. const int CW = 8,CCW = 9,CW2 = 10,CCW2 = 11; // motor kimenet a L298 panelhoz
  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.    
  21.   if (digitalRead(LM1) == LOW)
  22.     {
  23.       m1_vissza();
  24.     }
  25.     if(digitalRead(LM3) == LOW)
  26.     {
  27.       m2_oda();
  28.     }
  29.  if (digitalRead(LM4) == LOW)
  30.     {
  31.       m2_vissza();
  32.     }  
  33.    }
  34.              // motor függvények              
  35. void m1_oda( void)
  36.     {
  37.      digitalWrite(CW, LOW);
  38.      digitalWrite(CCW, HIGH);
  39.       }
  40. void m1_vissza( void)
  41.   {
  42.      digitalWrite(CCW, LOW);
  43.      digitalWrite(CW, HIGH);
  44.       }            
  45. void m2_oda( void)
  46.    {
  47.      digitalWrite(CW2, LOW);
  48.      digitalWrite(CCW2, HIGH);
  49.        }    
  50. void m2_vissza( void)
  51.     {
  52.      digitalWrite(CCW2, LOW);
  53.      digitalWrite(CW2, HIGH);
  54.          }
(#) jeges válasza eadx hozzászólására (») Máj 2, 2016 /
 
If nálad igaz ágban van minden!
Elentetje lehet hamis else ágba fog cselekedni!


if (fügvény) {
// csinálj dolgokat, ha a feltétel igaz
} else {
// csinálj dolgokat, ha a feltétel hamis
}
De ez a multi void redszer sokszor segitete nekem is ahogy az egész kodod épül rá...
A hozzászólás módosítva: Máj 2, 2016
(#) kapu48 válasza eadx hozzászólására (») Máj 2, 2016 /
 
Íród, hogy meg kellene állítani a motorokat!

De nincsen olyan rutin ami ezt végrehajtsa!

Ezt sem tudod megírni?

Vagy össze ollózni?
(#) Tetye válasza eadx hozzászólására (») Máj 2, 2016 /
 
Ha jól sejtem a problémád az hogy össze vissza forognak a motorok? Nem úgy ahogy szeretnéd? Mi lenne ha megvárnád ami bekövetkezik a végálláskapcsoló állapotváltozása és csak utána ugranál a következő if-re?
Így csak pörög a loop-ban és lesz hogy semmilyen feltétel nem felel meg neki, de lesz hogy több is, az idő és a motorok állásának függvényében.
Szerintem ha várnál a végállásra az segítene. Esetleg tehetnél bele egy time out-ot is hogy ha x sec-ig nem ér végállásba akkor jelezzen hogy gond van.

Na igen a motor megállítását én sem látom sehol...
A hozzászólás módosítva: Máj 2, 2016
(#) eadx válasza kapu48 hozzászólására (») Máj 2, 2016 /
 
Nem kell összeollózni ezt meg tudom már írni

void m2_tart( void)
{
digitalWrite(CCW2, LOW);
digitalWrite(CW2, LOW);
}

void m1_tart( void)
{
digitalWrite(CCW, LOW);
digitalWrite(CW, LOW);
}
(#) eadx válasza Tetye hozzászólására (») Máj 2, 2016 /
 
Ez a probléma , hogy nem tudom, hová beletenni a megállítást. Nem idő függvénye, hanem állapot. Viszont azt úgy néz ki nem is nézem.
(#) eadx válasza Tetye hozzászólására (») Máj 2, 2016 /
 
A motorok egyébként jó irányba forognak a végállás kapcsolók közt csak nem tudom mihez képest telik le egy ciklus a megállítására.
(#) kapu48 válasza eadx hozzászólására (») Máj 2, 2016 /
 
Akkor illeszd be a programodba az új részeket!
És hivd meg.
(#) eadx válasza kapu48 hozzászólására (») Máj 2, 2016 /
 
Sajnos a variációkból már kifogytam és leginkább már a belefáradásnál vagyok.
(#) Tetye válasza kapu48 hozzászólására (») Máj 2, 2016 /
 
Azt hiszem ez a baj a hogy nem tudja mikor kell őket meghívni.
Mert ugye azt nem nézi hogy mi történt meg abból amit szeretne, csak hogy valami feltételek stimmeljenek és mehet minden elölről....
eadx:
Szerintem arra kéne figyelned hogy
HA végállás 2 low inditod a motort, majd vizsgálod hogy a végállás még mindig low e és addig nem mész sehova innen amíg low nem lesz ha ez oké akkor mész tovább pörgés vissza.... figyeled és megint nem mész innen sehova amíg nem ért vissza kapcsolóhoz és ha vissza ért megállítod.
Másik motor ugyan így.
És akkor ugrassz csak a loop elejére.
Bővebben: Ő lessz a barátod ebben a feladatban.
(#) kapu48 válasza eadx hozzászólására (») Máj 2, 2016 /
 
Elvi vázlatt:
  1. void loop()
  2. {
  3. if(elsomotor == 1){
  4.   if(digitalRead(LM2) == LOW) {
  5.       m1_oda();
  6.           elmentod1 = 1;
  7.     }
  8.    
  9.   if (digitalRead(LM1) == LOW)
  10.     {
  11.       m1_vissza();
  12.           visszaindult1 = 1;
  13.           elsomotor = 0; // letiltjuk az első motort
  14.     }
  15.  }
  16.   if(visszaindult1 == 1)
  17.     {
  18.            if(digitalRead(LM2) == LOW) { // elérte a visszaút végét
  19.                   m1_tart();    // megáll
  20.                   visszaindult1 = 0;            törli a jelzőt
  21.                  
  22.                   masodikmotor = 1;             // engedélyezi a második motort
  23.         }
  24.        
  25.         ....
  26.        
  27. }


Ugyan ezt elkel játszani a másik motornál is.

Sajnos ehez tudni kellene mi az a "bool"?
Aminek ismeretét te értelmetlennek tartod!
A hozzászólás módosítva: Máj 2, 2016
(#) eadx válasza Tetye hozzászólására (») Máj 2, 2016 /
 
Ebbe az előltesztelős dologba már elementem egyszer és mindig az az eredménye hogy elfelejtik a végálláskor a motorok az irányváltást.
(#) eadx válasza kapu48 hozzászólására (») Máj 2, 2016 /
 
Nem tartom értelmetlennek csak nem tudtam értelmezni, az nem ugyan az.
  1. bool motor  = M1;    // motor sorrend 1 - 2
  2. bool motor1 = M1;    // oda késszen
  3. bool motor2 = M1;    // vissza késszen


Az M1 akkor most melyiknek felel meg és milyen lesz true vagy false?
(#) kapu48 válasza Tetye hozzászólására (») Máj 2, 2016 /
 
A várakozásnál semmi mást nem tud csinálni közben.
(#) Tetye válasza eadx hozzászólására (») Máj 2, 2016 /
 
Azt én sem értem hogy a bool hogy lehet egyenlő M1 el...
De mi volt a gondod azzal a megoldással amit kínáltam? Szerintem roppant egyszerű és nagyon megbízható a működése is. Esetleg bemutatnád amit próbáltál hogy hol hasalhat el?
(#) kapu48 válasza eadx hozzászólására (») Máj 2, 2016 /
 
Ne a neveken lovagolj, tök mind egy minek hivod!
Úgy érzem te csak akadékoskodsz!

bool -nak lehet az értéke 0 vagy 1. ez a lényeg!

Az if-nél az 1 az igazágat kapcsolja, a 0 pedig a hamisat.
(#) Tetye válasza kapu48 hozzászólására (») Máj 2, 2016 /
 
És akar egyébként? Erről eddig nem volt szó csak hogy az oda vissza dolog működjön. Ha akar akkor tényleg a Te megoldásod a jobb.
(#) kapu48 válasza Tetye hozzászólására (») Máj 2, 2016 /
 
Mert nem másolta ide az elejét:

#define M1 0 // első motor engedályezése
#define M2 1 // második mitor engedályezése
(#) eadx válasza kapu48 hozzászólására (») Máj 2, 2016 /
 
Akadékoskodni épp nem akarok csak a jó és egyszerú megoldást keresem úgy, hogy értsem is.
(#) eadx válasza kapu48 hozzászólására (») Máj 2, 2016 /
 
Csak azért nem mert ezt a részt értettem.
(#) Tetye válasza eadx hozzászólására (») Máj 2, 2016 /
 
De hogy hát akkor hát mi az amit nem értesz?
  1. #define M1 0 // első motor engedályezése
  2. #define M2 1 // második mitor engedályezése
  3.  
  4.     bool motor  = M1;    // motor sorrend 1 - 2
  5.     bool motor1 = M1;    // oda késszen
  6.     bool motor2 = M1;    // vissza késszen


ennek az eredménye az lesz hogy a
  1. motor  = 0
  2.     motor1 = 0
  3.     motor2 = 0

Ha M1 írsz akkor meg
  1. motor  = 1
  2.     motor1 = 1
  3.     motor2 = 1

Ezzel kitudod választani hogy melyik motort engedélyezed.
Következő: »»   221 / 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