annuncio

Comprimi
Ancora nessun annuncio.

Lista componenti, cosa dite?

Comprimi
X
  • Filtro
  • Ora
  • Visualizza
Elimina tutto
nuovi messaggi

  • Lista componenti, cosa dite?

    Salve a tutti, è un po di tempo che seguo il forum come ospite con un mio amico, dopo un pò di tentennamenti ci siamo detti "Ma si dai, facciamocene uno" e guardando un po qua e un po la, abbiamo fatto la nostra lista della spesa, e adesso siamo a frame montato e stiamo lavorando sul codice, anche se ci sta procurando qualche grattacapo con gli esc che non riusciamo a far andare, bho....
    Comunque sia, volevo sottoporvi la lista dei materiali che abbiamo preso, poi magari metterò qualche foto, il tutto per potermi presentare ed iniziare oltre a conoscere qualcuno anche ad evere la sua opinione.

    ZIPPY Flightmax 4000mAh 3S1P 20C

    hexTronik DT750 Brushless Outrunner 750kv

    esc pulso 22A

    Il frame è un 80x80 in alluminio, bello solido.

    L'unico nostro problema ora è che abbiamo scritto questo

    codice:
    //ingressi radio
    int accPin = 2;  
    int icsPin = 4;
    int ipsPin = 5;
    int rotPin = 6;
    int ch5Pin = 8;
    int ch6Pin = 7;
    
    //variabili lettura radio
    unsigned long DaccValue;
    unsigned long DicsValue;
    unsigned long DipsValue;
    unsigned long DrotValue;
    unsigned long Dch5Value;
    unsigned long Dch6Value;
    
    int accValue = 0; 
    int icsValue = 0;
    int ipsValue = 0;
    int rotValue = 0;
    int ch5Value = 0;
    int ch6Value = 0;
    
    //uscite motori
    int m1Pin = 9; 
    int m2Pin = 10;
    int m3Pin = 11;
    int m4Pin = 3;
    
    //valori uscite motori 
    int m1Val = 0;
    int m2Val = 0;
    int m3Val = 0;
    int m4Val = 0;
    
    //attenuazioni influenza comandi su motori
    int icsAttenuazione = 3;
    int ipsAttenuazione = 3;
    int rotAttenuazione = 5;
    
    //valori min e max ingresso radio
    int rcMax = 1900;
    int rcMin = 1100;
    int outMax = 255;
    int outMin = 0;
    
    //----------------------------------------------------------------
    
    void setup() {
    pinMode(accPin, INPUT);
    pinMode(icsPin, INPUT);
    pinMode(ipsPin, INPUT);
    pinMode(rotPin, INPUT);
    pinMode(ch5Pin, INPUT);
    pinMode(ch6Pin, INPUT);
      
    pinMode(m1Pin, OUTPUT); 
    pinMode(m2Pin, OUTPUT); 
    pinMode(m3Pin, OUTPUT); 
    pinMode(m4Pin, OUTPUT);
    
    Serial.begin(9600);
    }
    
    void loop() {
    //leggo radio
    DaccValue = pulseIn(accPin, HIGH);
    DicsValue = pulseIn(icsPin, HIGH);
    DipsValue = pulseIn(ipsPin, HIGH);
    DrotValue = pulseIn(rotPin, HIGH);
    Dch5Value = pulseIn(ch5Pin, HIGH);
    Dch6Value = pulseIn(ch6Pin, HIGH);
    accValue = map(DaccValue,rcMin,rcMax,outMin,outMax);
    icsValue = map(DicsValue,rcMin,rcMax,outMin,outMax);
    ipsValue = map(DipsValue,rcMin,rcMax,outMin,outMax);
    rotValue = map(DrotValue,rcMin,rcMax,outMin,outMax);
    ch5Value = map(Dch5Value,rcMin,rcMax,outMin,outMax);
    ch6Value = map(Dch6Value,rcMin,rcMax,outMin,outMax);
    
    //calcolo i valori dei motori
    m1Val = accValue + (((icsValue-128)/icsAttenuazione)/2) - (((ipsValue-128)/ipsAttenuazione)/2) - ((rotValue-128)/rotAttenuazione);
    m2Val = accValue - (((icsValue-128)/icsAttenuazione)/2) - (((ipsValue-128)/ipsAttenuazione)/2) + ((rotValue-128)/rotAttenuazione);
    m3Val = accValue + (((icsValue-128)/icsAttenuazione)/2) + (((ipsValue-128)/ipsAttenuazione)/2)+ ((rotValue-128)/rotAttenuazione);
    m4Val = accValue - (((icsValue-128)/icsAttenuazione)/2) + (((ipsValue-128)/ipsAttenuazione)/2) - ((rotValue-128)/rotAttenuazione);
    
    //do corrente ai motori
    analogWrite(m1Pin, m1Val);
    analogWrite(m2Pin, m2Val);
    analogWrite(m3Pin, m3Val);
    analogWrite(m4Pin, m4Val);
    //scrivo
    Serial.print(m1Val);
    Serial.print(" - ");
    Serial.print(m2Val);
    Serial.print(" - ");
    Serial.print(m3Val);
    Serial.print(" - ");
    Serial.print(m4Val);
    Serial.print(" | ");
    Serial.print(ch5Value);
    Serial.print(" - ");
    Serial.print(ch6Value);
    Serial.println();
    delay(100);
    }
    collegando il tutto quando dai gas i motori si muovono di un millimetro e poi basta, dopo mezza giornata a non capirne il motivo sono improvvisamente partiti, per poi spegnersi nuovamente poco dopo, aumentando il mistero, inizialmente pensavamo fosse un problema di contatto con i vili, invece no, abbiamo controllato tutto, ma nulla, l'esc fa il suo bel rumorino d'accensione a poi basta. non capiamo il perché...

    Avete delle impressioni o suggerimenti a riguardo?

    Grazie in anticipo di tutto.
Sto operando...
X