pin expander aansturen (mcp23016)

Arduino specifieke Software
Gebruikers-avatar
Berichten: 188
Geregistreerd: 23 Dec 2011, 00:12

Re: pin expander aansturen (mcp23016)

Berichtdoor Duality » 26 Okt 2012, 15:32

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:
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

Berichten: 68
Geregistreerd: 28 Aug 2012, 15:14

Re: pin expander aansturen (mcp23016)

Berichtdoor Nald » 31 Okt 2012, 21:02

Heb snel je bestand gedwonload en de test code gecompileerd, ik had geen errors. Ik ga nu eens verder testen

Gebruikers-avatar
Berichten: 188
Geregistreerd: 23 Dec 2011, 00:12

Re: pin expander aansturen (mcp23016)

Berichtdoor Duality » 01 Nov 2012, 01:57

goed, als je errors krijgt of je nog meer hulp nodig hebt, hoor ik het graag :)

Berichten: 68
Geregistreerd: 28 Aug 2012, 15:14

Re: pin expander aansturen (mcp23016)

Berichtdoor Nald » 25 Nov 2012, 20:58

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

Gebruikers-avatar
Berichten: 188
Geregistreerd: 23 Dec 2011, 00:12

Re: pin expander aansturen (mcp23016)

Berichtdoor Duality » 02 Dec 2012, 15:32

Heb je meschien je aanstuur code verandered ?

Berichten: 68
Geregistreerd: 28 Aug 2012, 15:14

Re: pin expander aansturen (mcp23016)

Berichtdoor Nald » 02 Dec 2012, 22:15

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;
  }
}

Gebruikers-avatar
Berichten: 188
Geregistreerd: 23 Dec 2011, 00:12

Re: pin expander aansturen (mcp23016)

Berichtdoor Duality » 04 Dec 2012, 15:10

maar eerder deed deze code het wel ?

Berichten: 68
Geregistreerd: 28 Aug 2012, 15:14

Re: pin expander aansturen (mcp23016)

Berichtdoor Nald » 04 Dec 2012, 15:33

Denk het wel, ik heb hem wel ooit werkend gekregen, alleen nu niet meer.

Berichten: 68
Geregistreerd: 28 Aug 2012, 15:14

Re: pin expander aansturen (mcp23016)

Berichtdoor Nald » 07 Dec 2012, 11:36

ik heb een nieuwe aangeschaft, deze werkt wel. Eindelijk kan ik nu eens verder met de code

Berichten: 68
Geregistreerd: 28 Aug 2012, 15:14

Re: pin expander aansturen (mcp23016)

Berichtdoor Nald » 07 Dec 2012, 12:15

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?

Vorige

Terug naar Arduino software

Wie is er online?

Gebruikers in dit forum: Geen geregistreerde gebruikers en 11 gasten