pin expander aansturen (mcp23016)
20 berichten
• Pagina 2 van 2 • 1, 2
Re: pin expander aansturen (mcp23016)
ja de library zorgt ervoor dat je pinnen net als bij arduino met digitalwrite en digitalread aan kan spreken.
de exemple sketch is een mooi voorbeeld.
library:
http://thefreeduality.tk/stuff/IOexpander.tar.gz
de syntax die in de example gebruikt word:
de exemple sketch is een mooi voorbeeld.
library:
http://thefreeduality.tk/stuff/IOexpander.tar.gz
de syntax die in de example gebruikt word:
- Code: Alles selecteren
IOexp.pinModePort(port, state); //kun je een heele port input of output maken(dus alle acht pinnen tegelijk) bijv. pinModePort(0, OUTPUT); worden alle acht pinnen op port0 OUTPUT.
IOexp.digitalWrite(port,pin,state); //kun je op een port een pin selecteren die je high of low wilt maken. bijv> digitalWrite(0,4,HIGH); word pin 4 op port 0 hoog.
IOexp.digitalRead(port,pin); //kun je een pin uitlezen op een gegeven port, dus bijv. digitalread(1,0) lees van port 1 de eerste pin uit.
Advertisement
Re: pin expander aansturen (mcp23016)
Heb snel je bestand gedwonload en de test code gecompileerd, ik had geen errors. Ik ga nu eens verder testen
Re: pin expander aansturen (mcp23016)
goed, als je errors krijgt of je nog meer hulp nodig hebt, hoor ik het graag
Re: pin expander aansturen (mcp23016)
Ben vandaag weer eens aan het experimenteren gegaan met de expander, vreemd genoeg krijg ik hem nu niet werkend, is er een manier om er achter te komen of hij kapot is of dat ik iets verkeerd heb aangesloten?
ik heb hem aangesloten volgens dit schema:
https://iprototype.nl/docs/mcp23016_base_ouput.pdf
ik heb hem aangesloten volgens dit schema:
https://iprototype.nl/docs/mcp23016_base_ouput.pdf
Re: pin expander aansturen (mcp23016)
ik heb hem proberen te testen met onderstaande probeercode.
- Code: Alles selecteren
#include <IOexpander.h>
#include <Wire.h>;
#include <inttypes.h>;
IOexpander IOexp;
void setup()
{
Serial.begin(9600);
Serial.println("IOexpander example");
if(IOexp.init(0x20, MCP23016))
Serial.println("Communication with IOexpander works!");
else
Serial.println("No communication with the IOexpander!!");
pinMode(13,OUTPUT);
IOexp.pinModePort(0,OUTPUT);
IOexp.pinModePort(1,INPUT);
}
int sw = 0;
int x = 100;
long next = 1000;
long next2 = 1000;
void loop()
{
//blinks port 0.7 to 0.4
if(millis() >= next){
IOexp.digitalWritePort(0,LOW);
switch(sw){
case 0:
IOexp.digitalWrite(0,4,HIGH);
sw++;
break;
case 1:
IOexp.digitalWrite(0,5,HIGH);
sw++;
break;
case 2:
IOexp.digitalWrite(0,6,HIGH);
sw++;
break;
case 3:
IOexp.digitalWrite(0,7,HIGH);
sw= 0;
Serial.print("next = ");Serial.println(next,DEC);
break;
default:
sw= 0;
break;
}
next = millis() + x;
}
//check the buttons on de IO expander
if(millis() >= next2){
if(IOexp.digitalRead(1,0)){
digitalWrite(13,HIGH);
x = 30;
}else {
x = 100;
digitalWrite(13,LOW);
}
next2 = millis() + 50;
}
}
Re: pin expander aansturen (mcp23016)
Denk het wel, ik heb hem wel ooit werkend gekregen, alleen nu niet meer.
Re: pin expander aansturen (mcp23016)
ik heb een nieuwe aangeschaft, deze werkt wel. Eindelijk kan ik nu eens verder met de code
Re: pin expander aansturen (mcp23016)
paar vraagjes:
Zijn er ergens de lijsten van commando's beschreven.
Bij de arduino zelf kan je zeggen: int schakelaar =3; en vervolgens pinMode(schakelaar, INPUT); kan dit ook met de IOexpander en hoe?
Zijn er ergens de lijsten van commando's beschreven.
Bij de arduino zelf kan je zeggen: int schakelaar =3; en vervolgens pinMode(schakelaar, INPUT); kan dit ook met de IOexpander en hoe?
20 berichten
• Pagina 2 van 2 • 1, 2
Wie is er online?
Gebruikers in dit forum: azuqopecihicu en 25 gasten