Showing posts sorted by relevance for query arduino-0-pin. Sort by date Show all posts
Showing posts sorted by relevance for query arduino-0-pin. Sort by date Show all posts

Monday 14 October 2013

INTERUPSI EKSTERNAL DENGAN MODE ANY CHANGE



Wow, kembali lagi di postingan ane. Kali ini, ane hendak membahas bagaimana cara menginterupsi dalam mode any change. Pada Percobaan mode interupsi any change. Kita masih akan menggunakan dua buah switch akan dihubungkan pada pin INT0 dan INT1. Penekanan switch akan membuat program utama pada fungsi loop terhenti dan mengeksekusi rutin interupsi.
Adapun langkah-langkahnya adalah seperti berikut :

  1. Rangakailah rangkaian di bawah ini dengan menggunakan ISIS 7. Rangkaiannya sama saja dengan rangkaian dengan menggunakan mode falling dan rising.
  2. Tuliskan sintaks di bawah ini dengan menggunakan program arduino (IDE) dan compile serta upload program tersebut ke sistem minimum arduino.
  3. Kondisi dimana switch dalam kondisi awal.
  4. Kondisi diaman switch di tekan. 

          Pada kondisi any change ini, interupsi terjadi ketika terjadi perubahan nilai dari 1 ke 0 maupun dari 0 ke 1. Seperti yang telah di ketahui sebelumnya perubahan nilai dari 1 ke 0 di sebut falling dan dari 0 ke 1 di sebut rising. Saat switch di tekan tejadi lah mode falling dan saat switch di lepas terjadi mode rising. Setelah mengeksekusi interupsi tersebut maka program akan melanjutkan program utamanya sacara terus menerus. Perubahan nilai tersebut di sebut any change.  
            Apa sih perbedaan antara kondisi any change dengan kondisi falling dan rising? Interupsi mode any change terjadi apabila terjadi perubahan nilai 1 ke 0 (Falling) maupun dari 0 ke 1 (Rising). Mode interupsi any change adalah gabungan antara mode falling dan rising.

Monday 23 February 2015

HARDWARE :: sensor api pengganti UVtron dan Thermal array


 
UVtron, Thermal Array, IR camera
yaitu pake remotenya nintendo wii.
  

remote wiimote dari nintendo
sensor api paket hemat dari remote wii ini rupanya cuman setengah harga dari UVtron+driver loh (kalo pake harga batam).
  
 
pada bagian depan dari remote ini memiliki kamera infra merah dengan spesifikasi berikut:
1. kamera resolusi 1024×768
2. Up to 4 blob (cahaya IR terang melebihi thresholdnya)
3. 100 proses gambar perdetik
3. interfacing i2c
4. output i2c berupa koordinat dari 4 blob tersebut.
wiring cameranya:
Jika menggunakan crystal quartz (4kaki) :
 
jika menggunakan crystal resonator (2kaki) perhatikan yang didalam kotak ya
 
bentuk jadinya
    
yang keren dari internet, yang tengah / yang jelek itu punya saya
cuman lum dilanjutkan, timahnya habis trus resistor ma capasitor ada dibawah pcb :p
setelah itu tinggal dihubungkan ke arduino dan pasang kaca hitam bawaannya.
jika ingin pakai library arduinonya download PVision.zip  ubah ke ZIP ya
tapi jika gak mau pakai library, ini contoh akses IR kamera nya:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
// Wii Remote IR sensor  test sample code  by kako
// modified output for Wii-BlobTrack program by RobotFreak
 
#include
 
int IRsensorAddress = 0xB0;
int slaveAddress;
int ledPin = 13;
boolean ledState = false;
byte data_buf[16];
int i;
 
int Ix[4];
int Iy[4];
int s;
 
void Write_2bytes(byte d1, byte d2)
{
    Wire.beginTransmission(slaveAddress);
    Wire.send(d1); Wire.send(d2);
    Wire.endTransmission();
}
 
void setup()
{
    slaveAddress = IRsensorAddress >> 1;   // This results in 0x21 as the address to pass to TWI
    Serial.begin(38400);
    pinMode(ledPin, OUTPUT);      // Set the LED pin as output
    Wire.begin();
    // IR sensor initialize
    Write_2bytes(0x30,0x01); delay(10);
    Write_2bytes(0x30,0x08); delay(10);
    Write_2bytes(0x06,0x90); delay(10);
    Write_2bytes(0x08,0xC0); delay(10);
    Write_2bytes(0x1A,0x40); delay(10);
    Write_2bytes(0x33,0x33); delay(10);
    delay(100);
}
void loop()
{
    ledState = !ledState;
    if (ledState) { digitalWrite(ledPin,HIGH); } else { digitalWrite(ledPin,LOW); }
 
    //IR sensor read
    Wire.beginTransmission(slaveAddress);
    Wire.send(0x36);
    Wire.endTransmission();
 
    Wire.requestFrom(slaveAddress, 16);        // Request the 2 byte heading (MSB comes first)
    for (i=0;i    i=0;
    while(Wire.available() && i < 16) {
        data_buf[i] = Wire.receive();
        i++;
    }
 
    Ix[0] = data_buf[1];
    Iy[0] = data_buf[2];
    s   = data_buf[3];
    Ix[0] += (s & 0x30) <    Iy[0] += (s & 0xC0) <
    Ix[1] = data_buf[4];
    Iy[1] = data_buf[5];
    s   = data_buf[6];
    Ix[1] += (s & 0x30) <    Iy[1] += (s & 0xC0) <
    Ix[2] = data_buf[7];
    Iy[2] = data_buf[8];
    s   = data_buf[9];
    Ix[2] += (s & 0x30) <    Iy[2] += (s & 0xC0) <
    Ix[3] = data_buf[10];
    Iy[3] = data_buf[11];
    s   = data_buf[12];
    Ix[3] += (s & 0x30) <    Iy[3] += (s & 0xC0) <
    for(i=0; i    {
      if (Ix[i] < 1000)
        Serial.print(" ");
      if (Ix[i] < 100)
        Serial.print(" ");
      if (Ix[i] < 10)
        Serial.print(" ");
      Serial.print( int(Ix[i]) );
      Serial.print(",");
      if (Iy[i] < 1000)
        Serial.print(" ");
      if (Iy[i] < 100)
        Serial.print(" ");
      if (Iy[i] < 10)
        Serial.print(" ");
      Serial.print( int(Iy[i]) );
      if (i        Serial.print(",");
    }
    Serial.println("");
    delay(3);
}
sumber:
https://handritoar.wordpress.com/2011/11/28/sensor-api-paket-hemat-tapi-efisien/
.