Ik heb een Arduino Mega 2560 en heb daar een CC3000 WiFi-shield op zitten. Deze werkt naar behoren zolang ik de library van adafruit gebruik. Maar ik wil graag de pinnen veranderen omdat ik deze nodig heb, maar dat lukt niet en ik weet niet waarom.
// These are the interrupt and control pins
#define ADAFRUIT_CC3000_IRQ 3 // MUST be an interrupt pin!
// These can be any two pins
#define ADAFRUIT_CC3000_VBAT 5
#define ADAFRUIT_CC3000_CS 10
Hierboven een stuk code, deze is rechtstreeks uit de library van adafruit. Maar als ik een van de pinnen verander, bijvoorbeeld:
#define ADAFRUIT_CC3000_VBAT 6
dan werkt de code niet meer. De code blijft dan op dit punt hangen:
// Initialise the module
Serial.println(F("\nInitializing..."));
if (!cc3000.begin()) {
Serial.println(F("Couldn't begin()! Check your wiring?"));
while(1);
}
De code blijft hangen bij: Initializing...
Kan iemand mij hierbij helpen? Ik wil dus de pinouts veranderen van de defined pins.
MGP
LDmicro user.
Op 1 juli 2015 12:27:11 schreef PauldeJ:
#define ADAFRUIT_CC3000_VBAT 5#define ADAFRUIT_CC3000_VBAT 6
dan werkt de code niet meer. De code blijft dan op dit punt hangen:
Zomaar eens naar de pinnen gekeken van een Arduino.
Vermoedelijk is VBAT 5 een analoge ingang (Vbatterij?) en 6 is dat niet.
Pin 5 van de arduino mega is gewoon een digitale poort met pwm functie net zoals poort 6.
#define ADAFRUIT_CC3000_IRQ 3 // MUST be an interrupt pin!
Pin 2 van de arduino mega is ook een interrupt pin, maar als ik 2 selecteer dan werkt de code ook niet.
MGP
LDmicro user.
Zijn ze wel zo gebruikt in de bibliotheek?
Je moet alles bekijken, ook de CPU.
Edit, je kunt niet zomaar andere pinnrs gebruiken, het is niet omdat ze bv pin 3 gebruiken dat je zomaar pin2 kunt invullen, al hebben ze beiden een interruptfunctie.
De gegeven naam (define) wordt toegewezen aan een cpu pin, niet omgekeerd, wat niet wil zeggen dat voor eenvoudige io functies dat niet zou kunnen.
Op 1 juli 2015 14:44:46 schreef MGP:
Edit, je kunt niet zomaar andere pinnrs gebruiken, het is niet omdat ze bv pin 3 gebruiken dat je zomaar pin2 kunt invullen, al hebben ze beiden een interruptfunctie.
// These can be any two pins
#define ADAFRUIT_CC3000_VBAT 5
#define ADAFRUIT_CC3000_CS 10
Waarom zeggen ze dan in de comment line dat het niet uitmaakt welke pinnen je gebruikt.
MGP
LDmicro user.
Tja, je kunt de vraag omkeren zoals jij doet, waarom werkt het dan niet.
Je mag misschien andere pinnen toewijzen als ze dezelfde functie aankunnen.
Maar ik blijf erbij dat pin5 een AIN is en pin 6 niet en daarom werkt het niet.
Edit, ik overlees nu eens de begintopic en zie dat je een shield gebruikt.
Dat wil dan zeggen dat hardwarematig je de pinnen niet kunt verwisselen of zie ik dat niet juist.
[Bericht gewijzigd door MGP op (28%)]
Meestal zijn pinnen van schield doorverbonden naar aantal pinnen van de arduino en kan je die niet zomaar veranderen. Je past dan wel de arduino code aan maar hardwarematig zit vbat nog steeds aan pin5 vast.
depeet
Depeet
Neem eens een kijkje op deze PDF-file. Onderaan pagina 11 staat vermeld dat je voor de Mega de hardware-pinnen voor ISP moet gebruiken.
Op pagina 12 worden deze als volgt opgesomt:
CLK = 52
MISO = 50
MOSI = 51
DS = 10
Het betreft dan wel om een breakout board met CC3300
Hier een overzicht van de pin-layout op het MEGA-board
Wat VBAT 6 betreft zie ik dat pin 6 bij de PCINT-groep behoort (PCINT = Pin Change Interrupt) Probeer daarom eens een andere PWM pin, bv Pin 4 of 7
[Bericht gewijzigd door depeet op (13%)]