Le forum a migré vers l'adresse suivante:

Forum

Masquer ce message

Simple-Duino Index du Forum



adafruit pwm et pca9685


 
Poster un nouveau sujet   Répondre au sujet    Simple-Duino Index du Forum -> Arduino & Électronique -> Projets -> Vos projets
Sujet précédent :: Sujet suivant  
Auteur Message
complicyte
Débutant

Hors ligne

Inscrit le: 22 Jan 2014
Messages: 9
Masculin
Niveau d'éléctronique: Intermédiaire

MessagePosté le: Mer 22 Jan - 17:49 (2014)    Sujet du message: adafruit pwm et pca9685 Répondre en citant

PublicitéSupprimer les publicités ?
bonjour,
je suis en cours de programmation (très avancé)d'une gestion d'aquarium: (arduino mega 2560)

  Chauffage/ températures
  Éclairage LED (allumage progressif, sur plusieurs couleurs)
  gestion PH/CO²
  Niveau d'eau des bacs
  Écran tft 3.2"
  etc

mon soucis:
je viens d’acquérir un shield adafruit 16pwm 12bits en I2C (chip pca9685)
celui ci fonctionne très bien avec les exemples constructeur
mais ...
mon projet aquarium est sur la version arduino 0022
alors que les librairies et exemples sont en version 1.05

je cherche soit a transformer la librairie .h et .ccp en 0022
soit a trouver directement la bonne version

je connais pas trop mal la programmation de l'arduino mais pas les connaissances pour modifier ou créer les librairies
je vous serait très reconnaissant si vous pouviez m'aider
 
Revenir en haut
Admin
Fondateur

Hors ligne

Inscrit le: 12 Avr 2012
Messages: 860
Masculin
Niveau d'éléctronique: Pro

MessagePosté le: Mer 22 Jan - 20:06 (2014)    Sujet du message: adafruit pwm et pca9685 Répondre en citant

tu peux télécharger les anciennes versions d'IDE arduino ICI
J'ai vérifié, la 0022 est dispo ;-)
____________________________
http://simple-duino.com
Revenir en haut
complicyte
Débutant

Hors ligne

Inscrit le: 22 Jan 2014
Messages: 9
Masculin
Niveau d'éléctronique: Intermédiaire

MessagePosté le: Mer 22 Jan - 21:54 (2014)    Sujet du message: adafruit pwm et pca9685 Répondre en citant

merci de la réponse
mais ce n'est pas l'IDE que je souhaite car j'ai déjà les 2 versions (0022 et 1.05)
mais c'est les 2 fichiers de la librairie (le .h et .ccp) que je recherche (soit adafruit soit pca9685)
Revenir en haut
complicyte
Débutant

Hors ligne

Inscrit le: 22 Jan 2014
Messages: 9
Masculin
Niveau d'éléctronique: Intermédiaire

MessagePosté le: Mer 22 Jan - 22:16 (2014)    Sujet du message: adafruit pwm et pca9685 Répondre en citant

les 2 librairies que j'ai trouver sont :
Adafruit_PWMServoDriver.ccp
Adafruit_PWMServoDriver.h

pour la version acheté avec le shield

et a défaut la librairie du chip

PCA9685.cpp
PCA9685.h
Revenir en haut
Admin
Fondateur

Hors ligne

Inscrit le: 12 Avr 2012
Messages: 860
Masculin
Niveau d'éléctronique: Pro

MessagePosté le: Jeu 23 Jan - 08:22 (2014)    Sujet du message: adafruit pwm et pca9685 Répondre en citant

Attends, j'ai du mal à comprendre ce que tu cherches en faite
____________________________
http://simple-duino.com
Revenir en haut
complicyte
Débutant

Hors ligne

Inscrit le: 22 Jan 2014
Messages: 9
Masculin
Niveau d'éléctronique: Intermédiaire

MessagePosté le: Jeu 23 Jan - 10:43 (2014)    Sujet du message: adafruit pwm et pca9685 Répondre en citant

je possède une carte adafruit pwm  dont les librairie sont écrite en IDE 1.05 (et fonctionne avec cette IDE)

 mon soucis c'est que mon programme de gestion d'aquarium est lui écrit avec IDE 0022 et je n'arrive donc pas a faire fonctionner cette carte avec mon programme
Revenir en haut
Admin
Fondateur

Hors ligne

Inscrit le: 12 Avr 2012
Messages: 860
Masculin
Niveau d'éléctronique: Pro

MessagePosté le: Jeu 23 Jan - 11:24 (2014)    Sujet du message: adafruit pwm et pca9685 Répondre en citant

ah d'accord !!
Alors tu pourrais nous envoyer ton programme qu'on puisse voir où sont les problèmes ?
____________________________
http://simple-duino.com
Revenir en haut
complicyte
Débutant

Hors ligne

Inscrit le: 22 Jan 2014
Messages: 9
Masculin
Niveau d'éléctronique: Intermédiaire

MessagePosté le: Jeu 23 Jan - 11:45 (2014)    Sujet du message: adafruit pwm et pca9685 Répondre en citant

le programme de mon aquarium ? ou les libs
libs c'est facile par contre mon programme est très long

en clair dans un premier temps voici mon programmme de test en IDE 1.05
Citation:
#include <Wire.h>
#include "Adafruit"   //Remplaces les "" par des <>


// called this way, it uses the default address 0x40
//Adafruit_PWMServoDriver pwm = Adafruit_PWMServoDriver();
// you can also call it with a different address you want
Adafruit_PWMServoDriver pwm = Adafruit_PWMServoDriver(0x41);


int i;
void setup() {
  Serial.begin(9600);
  Serial.println("16 channel Servo test!");


  pwm.begin();
 
  pwm.setPWMFreq(500);  // Analog servos run at ~60 Hz updates
}


void loop() {
  for (i=0; i<4096; i++){
   pwm.setPWM( 0, 0, i );
   delay (20);
 
   Serial.println(i);
 }
 delay (50);
}













voici la lib en .h
Citation:
 /***************************************************
 This is a library for our Adafruit 16-channel PWM & Servo driver


 Pick one up today in the adafruit shop!
 ------> http://www.adafruit.com/products/815


 These displays use I2C to communicate, 2 pins are required to  
 interface. For Arduino UNOs, thats SCL -> Analog 5, SDA -> Analog 4


 Adafruit invests time and resources providing this open source code,
 please support Adafruit and open-source hardware by purchasing
 products from Adafruit!


 Written by Limor Fried/Ladyada for Adafruit Industries.  
 BSD license, all text above must be included in any redistribution
****************************************************/


#ifndef _ADAFRUIT_PWMServoDriver_H
#define _ADAFRUIT_PWMServoDriver_H


#if ARDUINO >= 100
 #include "Arduino.h"
#else
 #include "WProgram.h"
#endif




#define PCA9685_SUBADR1 0x2
#define PCA9685_SUBADR2 0x3
#define PCA9685_SUBADR3 0x4


#define PCA9685_MODE1 0x0
#define PCA9685_PRESCALE 0xFE


#define LED0_ON_L 0x6
#define LED0_ON_H 0x7
#define LED0_OFF_L 0x8
#define LED0_OFF_H 0x9


#define ALLLED_ON_L 0xFA
#define ALLLED_ON_H 0xFB
#define ALLLED_OFF_L 0xFC
#define ALLLED_OFF_H 0xFD




class Adafruit_PWMServoDriver {
 public:
  Adafruit_PWMServoDriver(uint8_t addr = 0x40);
  void begin(void);
  void reset(void);
  void setPWMFreq(float freq);
  void setPWM(uint8_t num, uint16_t on, uint16_t off);


 private:
  uint8_t _i2caddr;


  uint8_t read8(uint8_t addr);
  void write8(uint8_t addr, uint8_t d);
};


#endif












 
le code du .ccp
Citation:
 /***************************************************
 This is a library for our Adafruit 16-channel PWM & Servo driver


 Pick one up today in the adafruit shop!
 ------> http://www.adafruit.com/products/815


 These displays use I2C to communicate, 2 pins are required to  
 interface. For Arduino UNOs, thats SCL -> Analog 5, SDA -> Analog 4


 Adafruit invests time and resources providing this open source code,
 please support Adafruit and open-source hardware by purchasing
 products from Adafruit!


 Written by Limor Fried/Ladyada for Adafruit Industries.  
 BSD license, all text above must be included in any redistribution
****************************************************/


#include
#include <Wire.h>
#ifdef __AVR__
 #define WIRE Wire
#else // Arduino Due
 #define WIRE Wire1
#endif


Adafruit_PWMServoDriver::Adafruit_PWMServoDriver(uint8_t addr) {
  _i2caddr = addr;
}


void Adafruit_PWMServoDriver::begin(void) {
 WIRE.begin();
 reset();
}




void Adafruit_PWMServoDriver::reset(void) {
 write8(PCA9685_MODE1, 0x0);
}


void Adafruit_PWMServoDriver::setPWMFreq(float freq) {
  //Serial.print("Attempting to set freq ");
  //Serial.println(freq);
 
  float prescaleval = 25000000;
  prescaleval /= 4096;
  prescaleval /= freq;
  prescaleval -= 1;
  Serial.print("Estimated pre-scale: "); Serial.println(prescaleval);
  uint8_t prescale = floor(prescaleval + 0.5);
  Serial.print("Final pre-scale: "); Serial.println(prescale);  
 
  uint8_t oldmode = read8(PCA9685_MODE1);
  uint8_t newmode = (oldmode&0x7F) | 0x10; // sleep
  write8(PCA9685_MODE1, newmode); // go to sleep
  write8(PCA9685_PRESCALE, prescale); // set the prescaler
  write8(PCA9685_MODE1, oldmode);
  delay(5);
  write8(PCA9685_MODE1, oldmode | 0xa1);  //  This sets the MODE1 register to turn on auto increment.
                                          // This is why the beginTransmission below was not working.
  //  Serial.print("Mode now 0x"); Serial.println(read8(PCA9685_MODE1), HEX);
}


void Adafruit_PWMServoDriver::setPWM(uint8_t num, uint16_t on, uint16_t off) {
  //Serial.print("Setting PWM "); Serial.print(num); Serial.print(": "); Serial.print(on); Serial.print("->"); Serial.println(off);


  WIRE.beginTransmission(_i2caddr);
  WIRE.write(LED0_ON_L+4*num);
  WIRE.write(on);
  WIRE.write(on>>8);
  WIRE.write(off);
  WIRE.write(off>>8);
  WIRE.endTransmission();
}


uint8_t Adafruit_PWMServoDriver::read8(uint8_t addr) {
  WIRE.beginTransmission(_i2caddr);
  WIRE.write(addr);
  WIRE.endTransmission();


  WIRE.requestFrom((uint8_t)_i2caddr, (uint8_t)1);
  return WIRE.read();
}


void Adafruit_PWMServoDriver::write8(uint8_t addr, uint8_t d) {
  WIRE.beginTransmission(_i2caddr);
  WIRE.write(addr);
  WIRE.write(d);
  WIRE.endTransmission();
}















enfin toutes les erreurs quand mon programme tourne sur l'IDE 0022
Citation:
D:\arduino-0022-JarduinoPatch\libraries\Adafruit_PWMServoDriver\Adafruit_PWMServoDriver.cpp: In member function 'void Adafruit_PWMServoDriver::setPWM(uint8_t, uint16_t, uint16_t)':
D:\arduino-0022-JarduinoPatch\libraries\Adafruit_PWMServoDriver\Adafruit_PWMServoDriver.cpp:67: error: 'class TwoWire' has no member named 'write'
D:\arduino-0022-JarduinoPatch\libraries\Adafruit_PWMServoDriver\Adafruit_PWMServoDriver.cpp:68: error: 'class TwoWire' has no member named 'write'
D:\arduino-0022-JarduinoPatch\libraries\Adafruit_PWMServoDriver\Adafruit_PWMServoDriver.cpp:69: error: 'class TwoWire' has no member named 'write'
D:\arduino-0022-JarduinoPatch\libraries\Adafruit_PWMServoDriver\Adafruit_PWMServoDriver.cpp:70: error: 'class TwoWire' has no member named 'write'
D:\arduino-0022-JarduinoPatch\libraries\Adafruit_PWMServoDriver\Adafruit_PWMServoDriver.cpp:71: error: 'class TwoWire' has no member named 'write'
D:\arduino-0022-JarduinoPatch\libraries\Adafruit_PWMServoDriver\Adafruit_PWMServoDriver.cpp: In member function 'uint8_t Adafruit_PWMServoDriver::read8(uint8_t)':
D:\arduino-0022-JarduinoPatch\libraries\Adafruit_PWMServoDriver\Adafruit_PWMServoDriver.cpp:77: error: 'class TwoWire' has no member named 'write'
D:\arduino-0022-JarduinoPatch\libraries\Adafruit_PWMServoDriver\Adafruit_PWMServoDriver.cpp:81: error: 'class TwoWire' has no member named 'read'
D:\arduino-0022-JarduinoPatch\libraries\Adafruit_PWMServoDriver\Adafruit_PWMServoDriver.cpp: In member function 'void Adafruit_PWMServoDriver::write8(uint8_t, uint8_t)':
D:\arduino-0022-JarduinoPatch\libraries\Adafruit_PWMServoDriver\Adafruit_PWMServoDriver.cpp:86: error: 'class TwoWire' has no member named 'write'
D:\arduino-0022-JarduinoPatch\libraries\Adafruit_PWMServoDriver\Adafruit_PWMServoDriver.cpp:87: error: 'class TwoWire' has no member named 'write'










Revenir en haut
Admin
Fondateur

Hors ligne

Inscrit le: 12 Avr 2012
Messages: 860
Masculin
Niveau d'éléctronique: Pro

MessagePosté le: Jeu 23 Jan - 13:05 (2014)    Sujet du message: adafruit pwm et pca9685 Répondre en citant

C'est pas grave en fait c'est surtout ton programme qui m'intéresse  Okay
Donc postes le même s'il est long, tu n'as en revanche pas besoin de me mettre la liste des erreurs car je peux les trouver !!
____________________________
http://simple-duino.com
Revenir en haut
complicyte
Débutant

Hors ligne

Inscrit le: 22 Jan 2014
Messages: 9
Masculin
Niveau d'éléctronique: Intermédiaire

MessagePosté le: Jeu 23 Jan - 13:25 (2014)    Sujet du message: adafruit pwm et pca9685 Répondre en citant

pour l'instant cela ne donnera rien car il n'y a pas de commande d'allumage de LED (je viens juste de recevoir la carte pour pouvoir commander mes  9 voies de LED en pwm, juste l'affichage sur l'afficheur
en plus comme je suis en plein dedans il est encore un peu fouillis toutes les annotations ne sont pas encore mise et resterai assez compliqué a lire 
je fais un peu le ménage et je le mettrais ce week-end  mais cela ne fera pas avancé mon problème
Revenir en haut
complicyte
Débutant

Hors ligne

Inscrit le: 22 Jan 2014
Messages: 9
Masculin
Niveau d'éléctronique: Intermédiaire

MessagePosté le: Jeu 23 Jan - 13:31 (2014)    Sujet du message: adafruit pwm et pca9685 Répondre en citant

je viens de m’apercevoir qu'il manque le nom de la librairie apres le # include
donc voici les 2 premieres lignes

#include <Wire.h>
#include <Adafruit_PWMServoDriver.h>

le reste est ok
Revenir en haut
Admin
Fondateur

Hors ligne

Inscrit le: 12 Avr 2012
Messages: 860
Masculin
Niveau d'éléctronique: Pro

MessagePosté le: Ven 24 Jan - 09:20 (2014)    Sujet du message: adafruit pwm et pca9685 Répondre en citant

C'est un bug
____________________________
http://simple-duino.com
Revenir en haut
complicyte
Débutant

Hors ligne

Inscrit le: 22 Jan 2014
Messages: 9
Masculin
Niveau d'éléctronique: Intermédiaire

MessagePosté le: Ven 24 Jan - 10:40 (2014)    Sujet du message: adafruit pwm et pca9685 Répondre en citant

oui surement
Revenir en haut
Admin
Fondateur

Hors ligne

Inscrit le: 12 Avr 2012
Messages: 860
Masculin
Niveau d'éléctronique: Pro

MessagePosté le: Ven 24 Jan - 18:10 (2014)    Sujet du message: adafruit pwm et pca9685 Répondre en citant

Corrigé !!
____________________________
http://simple-duino.com
Revenir en haut
complicyte
Débutant

Hors ligne

Inscrit le: 22 Jan 2014
Messages: 9
Masculin
Niveau d'éléctronique: Intermédiaire

MessagePosté le: Sam 25 Jan - 08:08 (2014)    Sujet du message: adafruit pwm et pca9685 Répondre en citant

je viens de m'attaquer a la mise a niveau 1.056 de mon programme et cela a l'air chaud chaud chaud
Revenir en haut
Contenu Sponsorisé






MessagePosté le: Aujourd’hui à 20:18 (2017)    Sujet du message: adafruit pwm et pca9685

Revenir en haut
Montrer les messages depuis:   
Poster un nouveau sujet   Répondre au sujet    Simple-Duino Index du Forum -> Arduino & Électronique -> Projets -> Vos projets Toutes les heures sont au format GMT + 1 Heure
Page 1 sur 1

 
Sauter vers:  

Index | creer un forum | Forum gratuit d’entraide | Annuaire des forums gratuits | Signaler une violation | Conditions générales d'utilisation
Powered by phpBB
Propulsé par Simple-Duino