Problem with comparison.
/Modules/Sensors/ISL2902001A/SW/PIC16F887/main.hex |
---|
0,0 → 1,284 |
:1000000006308A00AA2E00000D054D264121202130 |
:100010006139EF36653A6539A0306E32A0206C3A0E |
:10002000E936653A65392032E5366F10E337E43258 |
:10003000A0060A00D4326D386539613A7539651009 |
:100040005B32E533A0215D105039E530F339753965 |
:1000500065105B28E12EA0206C3A693A7532651074 |
:10006000DB365D100D050001831603178C170C1489 |
:100070000000000083120C087F3903197A2803134B |
:10008000AD0003170D080313AE0003170F08031389 |
:10009000AF002D080C1E4A2899002E0803178D006A |
:1000A00003132F0803178F0083168C170C140000FE |
:1000B000000083120C0D0E0D7F3903197A280313EB |
:1000C000AD0003170D080313AE0003170F08031349 |
:1000D000AF002D080C1E6A2899002E0803178D000A |
:1000E00003132F0803178F008D0A03198F0A0313B8 |
:1000F00034280317031308000830F80000008711A4 |
:10010000A01120088316870000008312BE0D07127D |
:10011000031C902820162008831687009428831239 |
:10012000201220088316870000008312A0152008E3 |
:10013000831687008312871D9B28F80B7E280000FA |
:100140008711A01120088316870000008312201653 |
:10015000200883168700000000008312A0152008E5 |
:10016000831687008312871DB328F8010000071A41 |
:1001700078148711A01120088316870083120712B4 |
:1001800020122008831687008312080020162008FA |
:100190008316870000008312A015200883168700AD |
:1001A0000000831207122012200883168700000027 |
:1001B00083128711A011200883168700C030831294 |
:1001C000BE007C202630BE007C20B830BE007C20E3 |
:1001D000201220088316870000008312A015200833 |
:1001E000831687008312871DF3280000F72800007C |
:1001F000201620088316870000008312201620088E |
:100200008316870000008312A0152008831687003C |
:1002100000008312071220122008831687000000B6 |
:1002200083128711A011200883168700C030831223 |
:10023000BE007C201330BE007C200730BE007C2036 |
:10024000201220088316870000008312A0152008C2 |
:10025000831687008312871D2B2900002F29000099 |
:10026000201620088316870000008312201620081D |
:100270008316870000008312A015200883168700CC |
:100280000000831207122012200883168700000046 |
:1002900083128711A011200883168700C0308312B3 |
:1002A000BE007C202630BE007C203930BE007C2081 |
:1002B000201220088316870000008312A015200852 |
:1002C000831687008312871D6329000067290000B9 |
:1002D0002016200883168700000083128A110A1254 |
:1002E000DD2E2E3084008313000803198429023088 |
:1002F000F800F701F70B7A29F80B79299730F70006 |
:10030000F70B8029800B7729080020162008831618 |
:10031000870000008312A0152008831687000000C4 |
:100320008312071220122008831687000000831210 |
:100330008711A011200883168700C0308312BE00E9 |
:100340007C203C08BE007C202016200883168700F5 |
:1003500000008312A0152008831687000000831276 |
:10036000871DB0290712201220088316870000007D |
:1003700083128711A011200883168700C1308312D1 |
:10038000BE007C20F7010830BF007708C0002016AF |
:1003900020088316870000008312A015200883160A |
:1003A00087008312871DD229071A0314071E031022 |
:1003B000F80D0000A0112008831687008312871112 |
:1003C000BF0BC72920162008831687000000831260 |
:1003D000071240080319F12920122008831687000C |
:1003E00083120000A0152008831687008312871D42 |
:1003F000F72900008711A01120088316870000004C |
:1004000083120712201220088316870078088312AF |
:10041000BD00201220088316870000008312A0155B |
:100420002008831687008312871D142A0000182ACB |
:1004300000002016200883168700000083123D0864 |
:10044000F80008008E30F7003E08F8003D08F9007B |
:10045000FA01F808031D362A7908F800F901083076 |
:10046000F702F808031D362AF7013E2A0310F81B8D |
:100470003D2AF90DF80DF703362AF8130800410854 |
:100480000319042BCD0045080319042BCD02031CCE |
:100490004E2A7F30CD070318042B542A8130CD0219 |
:1004A000031C042B0319042B4D08F700F801F90174 |
:1004B000FA01CC014208CB00CB174308CA0044081C |
:1004C000C9001930CD004808C9020318772A013045 |
:1004D000CA020318772ACB020318772ACC02031822 |
:1004E000772ACC0ACB0ACA0A4808C907A92A4708AA |
:1004F000CA020318922A0130CB020318922ACC02B6 |
:100500000318922ACC0ACB0A4708CA074808C90729 |
:10051000031CA92ACA0A031DA92ACB0A031DA92A5A |
:10052000CC0AA92A46088038CB020318A82A013031 |
:10053000CC020318A82ACC0A46088038CB07470803 |
:10054000CA07031C862ACB0A031D862ACC0A862AE0 |
:100550007A14CD0BAC2AB72A0310C90DCA0DCB0DE6 |
:10056000CC0D0310FA0DF90DF80DCE0D632A4E1CBB |
:10057000BF2A0310F80CF90CFA0CCE0CC22AF703B0 |
:100580000319042BCE1BEB2A0310C90DCA0DCB0D8A |
:10059000CC0D4808C9020318D72A0130CA02031833 |
:1005A000D72ACB020318D72ACC02031CFA2A470801 |
:1005B000CA020318E22A0130CB020318E22ACC0255 |
:1005C000031CFA2A46088038CB020318EB2A0130B4 |
:1005D000CC02031CFA2AFA0A031DFA2AF90A031D9F |
:1005E000FA2AF80A031DFA2AF70A0319042BF80C51 |
:1005F000F90CFA0C4208CD004608CD06CD1F022B9F |
:10060000F817082BF813082BF701F801F901FA0184 |
:10061000080080308318C806CD01CE014408CC0004 |
:100620004808CC0643080319F92BCB00F70047080C |
:100630000319022CCB0203199E2B031C5C2B4808C8 |
:10064000D100D1174908D0004A08CF00CE010310CD |
:10065000D10CD00CCF0CCE0CCB0B262BCC1F332BBC |
:100660004D14162C4D104B104D164630840083133C |
:100670002B2C4D12CC1B462B4B1C512BD10CD00CD0 |
:10068000CF0CCE0CF70A0319112C512BD11B542B74 |
:100690000310CE0DCF0DD00DD10DF7030319112C82 |
:1006A000462B4D17BE2B4D134408CC00CC1F5A2BA4 |
:1006B000D1170A2CD1130A2C4708CB00F7004308A6 |
:1006C000CB024408D100D1174508D0004608CF001E |
:1006D000CE010310D10CD00CCF0CCE0CCB0B682B61 |
:1006E000CC1F752BCD14162CCD104B10CD164A30C7 |
:1006F000840083132B2CCD12CC1B882B4B1C932BEB |
:10070000D10CD00CCF0CCE0CF70A0319112C932B63 |
:10071000D11B962B0310CE0DCF0DD00DD10DF703AD |
:100720000319112C882BCD17BE2BCD134808CC00F4 |
:10073000CC1F9C2BD1170A2CD1130A2C4808D100AE |
:10074000D1174908D0004A08CF00CC1FAB2BD113DA |
:100750004D15162C4D11CE014B10463084008313DD |
:100760002B2CCC1BD42B4408CC004B1CBE2BD10C07 |
:10077000D00CCF0CCE0CF70A0319112CCE1FCF2BA7 |
:10078000CF0A031DCF2BD00A031DCF2BD10A031D87 |
:10079000CF2BD10CD00CCF0CF70A0319112C4D1B09 |
:1007A000532BCD1B952BF32B8030D106D11FDC2B87 |
:1007B000162C4808CC00E92B4408CC00D108031DB6 |
:1007C000E92BD008031DE92BCF08031DE92BF70106 |
:1007D0000A2CD11BF32B0310CE0DCF0DD00DD10D54 |
:1007E000F70BE92B112CCC1FF72BD1170A2CD113A7 |
:1007F0000A2C4708F7004808D1004908D0004A08E9 |
:10080000CF000A2C4308F7004408D1004508D00067 |
:100810004608CF005108F8005008F9004F08FA00C8 |
:10082000492CF701F801F901FA01492CCE01CF0951 |
:10083000D009D109CE09CE0A031D242CCF0A031DED |
:10084000242CD00A0319D10A4D18322BCD18742B41 |
:100850004D19AA2BD92B0008CF07031C352CD00A21 |
:10086000031D352CD10A03194B1484030008D0074B |
:10087000031C3D2CD10A03194B1484030008801F6C |
:10088000803AD10703184B144D1A392BCD1A7B2B04 |
:10089000B12B08000430BC0085217808AD0005307C |
:1008A000BC008521780EF7000F30F7057708BE01F0 |
:1008B000BD0022227708B6007808B7007908B80092 |
:1008C0007A08B900C4007908C3007808C200770824 |
:1008D000C100C801C701C6018330C5003F227A08A4 |
:1008E000B1007908B0007808AF007708AE00BE010B |
:1008F0002D08BD00222283107A08C6007908C500A1 |
:100900007808C4007708C3003108CA003008C9005D |
:100910002F08C8002E08C70009237A08B5007908F7 |
:10092000B4007808B3007708B2003208F700330843 |
:10093000F8003408F9003508FA008A110A12E52E89 |
:100940000130BC008521B001AF01AE017808AD00D7 |
:100950000230BC008521B2017808B1000330BC0030 |
:1009600085217808B300330EF7000F30F7057708BC |
:10097000BE01BD0022227708BD007808BE007908BC |
:10098000BF007A08C000C4007908C3007808C2001C |
:100990007708C100C801C701C6018130C5003F22E8 |
:1009A0007A08BB007908BA007808B9007708B8005F |
:1009B000BD012D0DBE002E0DBF002F0DC000BE0DC0 |
:1009C000BF0DC00DFC30BE05310DF900320DFA002F |
:1009D000F90DFA0DFC30F9057908BD047A08BE045A |
:1009E000330EF700F70CF70C0330F70577083D04DA |
:1009F000F7003E08F8003F08F9004008FA007A08BE |
:100A0000C6007908C5007808C4007708C300B6306E |
:100A1000F700FA01F901F8014308440445044604CB |
:100A2000031D142DF701212D0310F81B202DC30DDC |
:100A3000C40DC50DC60DFA0DF90DF80DF70B142DEB |
:100A4000F8137708BD007808BE007908BF007A085F |
:100A5000C00083107A08C6007908C5007808C40071 |
:100A60007708C3003B08CA003A08C9003908C80023 |
:100A70003808C70009237A08B7007908B600780853 |
:100A8000B5007708B4003408F7003508F8003608D8 |
:100A9000F9003708FA008A110A12EE2E20162008F3 |
:100AA0008316870000008312A01520088316870094 |
:100AB000000083120712201220088316870000000E |
:100AC00083128711A011200883168700C03083127B |
:100AD000BE007C202630BE007C20B830BE007C20CA |
:100AE000201220088316870000008312A01520081A |
:100AF000831687008312871D7B2D00007F2D000049 |
:100B00002016200883168700000083122016200874 |
:100B10008316870000008312A01520088316870023 |
:100B2000000083120712201220088316870000009D |
:100B300083128711A011200883168700C03083120A |
:100B4000BE007C201330BE007C200730BE007C201D |
:100B5000201220088316870000008312A0152008A9 |
:100B6000831687008312871DB32D0000B72D000068 |
:100B70002016200883168700000083122016200804 |
:100B80008316870000008312A015200883168700B3 |
:100B9000000083120712201220088316870000002D |
:100BA00083128711A011200883168700C03083129A |
:100BB000BE007C202630BE007C20B930BE007C20E8 |
:100BC000201220088316870000008312A015200839 |
:100BD000831687008312871DEB2D0000EF2D000088 |
:100BE0002016200883168700000083128A110A123B |
:100BF000F72E0130BC008521AE017808AD0002302F |
:100C0000BC008521B0017808AF000330BC0085210D |
:100C1000780EF7000F30F7057708BE01BD002222DD |
:100C20007708B9007808BA007908BB007A08BC00D8 |
:100C3000C4007908C3007808C2007708C100C80161 |
:100C4000C701C6018330C5003F227A08B400790885 |
:100C5000B3007808B2007708B1002D08BB00BA01D4 |
:100C60003A082F04F7002D083004FA007708BD0079 |
:100C70007A08BE0022227708BA007808BB007908FB |
:100C8000BC007A08BD0083107A08C6007908C50048 |
:100C90007808C4007708C3003408CA003308C900C4 |
:100CA0003208C8003108C70009237A08B80079085B |
:100CB000B7007808B6007708B5003508F7003608A1 |
:100CC000F8003708F9003808FA008A110A12FF2ED6 |
:100CD000F701F801F901FA01C201C301C401C5011C |
:100CE000410840043F043E040319A62E2030C600EC |
:100CF0000310BA0DBB0DBC0DBD0DC20DC30DC40D4F |
:100D0000C50D41084502031D8F2E40084402031DF6 |
:100D10008F2E3F084302031D8F2E3E084202031C04 |
:100D2000A02E3E08C2023F08031C3F0FC30240082A |
:100D3000031C400FC4024108031C410FC5020314E9 |
:100D4000F70DF80DF90DFA0DC60B782E4230840020 |
:100D500083130800840183131F30830571308316C9 |
:100D60008F000F08031787110C3003139900A2306E |
:100D70009800903083129800831603170908C03931 |
:100D8000890003131F129F1200300317880083127B |
:100D9000870188018901FF300313A0000430031785 |
:100DA0008D0000308F00031334201A3003178D009C |
:100DB00000308F0003133420C6280230AD00FA3013 |
:100DC000AE007121AD0BDF2E4A2C7A08A8007908FD |
:100DD000A7007808A6007708A500A02C7A08A40030 |
:100DE0007908A3007808A2007708A1004E2D0230F0 |
:100DF000AD00FA30AE007121AD0BF92EF92D7A0855 |
:100E0000AC007908AB007808AA007708A900023086 |
:100E100084002808B0002708AF002608AE00250887 |
:100E2000AD000130B1008A1500208A1120300C1E5F |
:100E3000172F9900053084002408B0002308AF0064 |
:100E40002208AE002108AD000130B1008A15002053 |
:100E50008A1120300C1E2A2F9900043084002C089F |
:100E6000B0002B08AF002A08AE002908AD00023000 |
:100E7000B1008A1500208A1120300C1E3D2F9900E8 |
:100E80000D300C1E412F99000A300C1E452F990081 |
:100E90000430AD00FA30AE007121AD0B4A2FDC2ECC |
:020EA0006300ED |
:101000000408B2003108B400031992283008BD006A |
:101010002F08BC002E08BB002D08BA00C101C0017A |
:101020002030BF008230BE003A0803198428C20075 |
:101030003E0803198428C207031825287F30C202FE |
:10104000031C84280319842829288130C207031827 |
:1010500084284208F700F801F901FA013B08C600AC |
:10106000C6173C08C5003D08C4001830C200C301C3 |
:10107000441C52284108FA07031C4428F90A031D9E |
:101080004428F80A0319C3174008F907031C4B2822 |
:10109000F80A0319C3173F08BC00BC173C08F8073F |
:1010A0000318C317C30DF80CF90CFA0CC60CC50CC9 |
:1010B000C40C0310C20B37280130F707031884282B |
:1010C000F81B6928C60DFA0DF90DF80DF703031981 |
:1010D0008428C61F7A28FA0A031D7A28F90A031DF4 |
:1010E0007A28F80A031D7A28F80CF90CFA0CF70A8A |
:1010F000031984283B08C3003F08C306C31F822886 |
:10110000F8178828F8138828F701F801F901FA017F |
:101110007A08B0007908AF007808AE007708AD0013 |
:10112000B40B06283008BD002F08BC002E08BB00F9 |
:101130002D08BA003A08B63CBA00FA013B08BE00D6 |
:10114000BB170310BB0CBC0CBD0CFA0CF90CF80C53 |
:10115000F70CBA0BA128BE1FB828F709F809F9093E |
:10116000FA09F70A0319F80A0319F90A0319FA0A1E |
:101170007A08B0007908AF007808AE007708AD00B3 |
:10118000B01FCF28B203B216AD09AE09AF09B0093E |
:10119000AD0A0319AE0A0319AF0A0319B00A3B30AE |
:1011A000B9009A30B800CA30B700B6010A30B400AE |
:1011B00031080319B20A3008BD002F08BC002E0800 |
:1011C000BB002D08BA003908C1003808C000370834 |
:1011D000BF003608BE008A1168268A150008AD00D7 |
:1011E000840A0008AE00840A0008AF00840A0008E0 |
:1011F000B000FD308407F708031D1129310A3402BD |
:10120000031911293208031913290F39340203195C |
:101210000B2903184729B21B4729321B13292030F9 |
:1012200042292030B205B21E2229B2123108031D14 |
:10123000B2037708B2002D300C1E1C299900320829 |
:10124000F700B20131083402031D31297708B200DA |
:101250002E300C1E292999003208F7002030B205E3 |
:1012600000303030B21E4229B2123108031DB203E1 |
:101270007708B2002D300C1E3B2999003208F70088 |
:10128000B2013030F70777080C1E4429990039085D |
:10129000BD003808BC003708BB003608BA00C101E1 |
:1012A000C001BF010A30BE008A1168268A157A087B |
:1012B000B9007908B8007808B7007708B600B40B11 |
:0412C000DB2808001F |
:04400E00F52CFF3F4F |
:00000001FF |
;PIC16F887 |
;CRC=79AB CREATED="06-VI-13 00:24" |
/Modules/Sensors/ISL2902001A/SW/PIC16F887/main.c |
---|
0,0 → 1,142 |
#define VERSION "0.1" |
#define ID "$Id: main.c 2916 2013-04-14 17:42:03Z kaklik $" |
#include "main.h" |
#use i2c(master, sda=PIN_C4, scl=PIN_C3) |
#use rs232(baud=9600,parity=N,xmit=PIN_C6,rcv=PIN_C7,bits=8) //rcv TXD xmit RXD |
#define MPL3115_ADDR_R 0xC1 //addresa pro cteni |
#define MPL3115_ADDR_W 0xC0 |
void mpl3115_setA (void) //nastavení pro výku |
{ |
i2c_start(); //STANDBY mode |
I2C_Write(MPL3115_ADDR_W); |
I2C_write(0x26); |
I2C_write(0xB8); |
i2c_stop(); |
i2c_start(); //PT_DATA_CFG set |
I2C_Write(MPL3115_ADDR_W); |
I2C_write(0x13); |
I2C_write(0x07); //hodnota |
i2c_stop(); |
i2c_start(); //ACTIVE mode |
I2C_Write(MPL3115_ADDR_W); |
I2C_write(0x26); |
I2C_write(0xB9); |
i2c_stop(); |
} |
void mpl3115_setP (void) //nastavení pro tlak |
{ |
i2c_start(); //STANDBY mode |
I2C_Write(MPL3115_ADDR_W); |
I2C_write(0x26); |
I2C_write(0xB8); |
i2c_stop(); |
i2c_start(); //PT_DATA_CFG set |
I2C_Write(MPL3115_ADDR_W); |
I2C_write(0x13); |
I2C_write(0x07); //hodnota |
i2c_stop(); |
i2c_start(); //ACTIVE mode |
I2C_Write(MPL3115_ADDR_W); |
I2C_write(0x26); |
I2C_write(0x39); |
i2c_stop(); |
} |
byte mpl3115_read (byte reg) |
{ |
byte i; |
i2c_start(); |
I2C_Write(MPL3115_ADDR_W); |
I2C_write(reg); |
i2c_start(); |
I2C_Write(MPL3115_ADDR_R); |
i=i2c_read(0); |
i2c_stop(); |
return i; |
} |
float mpl3115_T (void) //teplota ve stupnich |
{ |
int m; |
float l, t; |
m = mpl3115_read (0x04); |
l = (float)(mpl3115_read(0x05)>>4)/16.0; |
t = (float)(M + L); |
return t; |
} |
float mpl3115_A (void) //vyska v m |
{ |
int16 m, c; |
float l, a; |
m = mpl3115_read (0x01); |
c = mpl3115_read (0x02); |
l = (float)(mpl3115_read(0x03)>>4)/16.0; |
a = (float)((m << 8)|c) + l; |
return a; |
} |
float mpl3115_P (void) //tlak v Pa |
{ |
unsigned int32 m; |
unsigned int16 c; |
unsigned int l; |
float p, l1; |
m = mpl3115_read (0x01); |
c = mpl3115_read (0x02); |
l = mpl3115_read(0x03); |
l1= (float)(l>>4)/4.0; |
p = (float)((m << 10)|(c<<2)|(l>>6)) + l1; |
return p; |
} |
void main() |
{ |
float p, t, a; |
printf("\r\nMLAB Barometer and Altimeter demo code \r\n",); |
printf("Temperature [deg C] Preassure [Pa] Altitude [m] \r\n",); |
while(TRUE) |
{ |
mpl3115_setP(); //nastaveni pro tlak a teplotu |
delay_ms (500); |
t=mpl3115_T(); |
p=mpl3115_P(); |
mpl3115_setA(); //nastaveni pro vysku a teplotu |
delay_ms (500); |
a=mpl3115_A(); |
printf("%3.1f %6.1f %5.2f \r\n", t, p, a); |
delay_ms (1000); |
} |
} |
/Modules/Sensors/ISL2902001A/SW/PIC16F887/main.h |
---|
0,0 → 1,19 |
#include <16F887.h> |
#device adc=8 |
#FUSES NOWDT //No Watch Dog Timer |
#FUSES INTRC //Internal RC Osc |
#FUSES NOPUT //No Power Up Timer |
#FUSES MCLR //Master Clear pin enabled |
#FUSES NOPROTECT //Code not protected from reading |
#FUSES NOCPD //No EE protection |
#FUSES NOBROWNOUT //No brownout reset |
#FUSES IESO //Internal External Switch Over mode enabled |
#FUSES FCMEN //Fail-safe clock monitor enabled |
#FUSES NOLVP //No low voltage prgming, B3(PIC16) or B5(PIC18) used for I/O |
#FUSES NODEBUG //No Debug mode for ICD |
#FUSES NOWRT //Program memory not write protected |
#FUSES BORV40 //Brownout reset at 4.0V |
#use delay(clock=8000000) |
/Modules/Sensors/ISL2902001A/SW/PIC16F887/main.pjt |
---|
0,0 → 1,28 |
[PROJECT] |
Target=main.hex |
Development_Mode= |
Processor_Text=PIC16F887 |
ToolSuite=CCS |
Processor=0x887F |
[main] |
Type=4 |
Path= |
FileList= |
BuildTool= |
OptionString= |
AdditionalOptionString= |
[mru-list] |
1=main.c |
[Windows] |
0=0000 %S 0 0 796 451 3 0 |
[Opened Files] |
1=main.c |
2= |
3=C:\Program Files (x86)\PICC\devices\16F887.h |
4= |
[Target Data] |
OptionString=-p +FM |
FileList=Z:\home\kaklik\svnMLAB\Modules\Sensors\ALTIMET01A\SW\MPL3115\PIC16F887\main.c |
[Units] |
Count=1 |
1=main (main) |
/Modules/Sensors/ISL2902001A/SW/Arduino/i2c_light/i2c_light.ino |
---|
0,0 → 1,129 |
// I2C Light Sensor |
#include <Wire.h> |
#include <math.h> |
#define address 0x44 // A0 = L |
#define SENSE_VIS 0 |
#define SENSE_IR 1 |
#define LIGHT_AUTORANGE 0 |
#define LIGHT_RANGE1 1 |
#define LIGHT_RANGE2 2 |
#define LIGHT_RANGE3 3 |
#define LIGHT_RANGE4 4 |
void setup() |
{ |
Wire.begin(); // join i2c bus (address optional for master) |
// I2C pins PC4 - SDA , PC5 - SCL |
// |
pinMode(3, OUTPUT); // LED pro blikani, aby bylo videt, ze to neco dela |
Serial.begin(9600); // Zmerena intenzita osvetleni se bude vypisovat na seriovou linku |
Serial.println("LABduino luxmeter demo - (c) MLAB.cz, kakl 2012"); |
} |
int data = 0; |
int light_sensor_setup; |
void led_blink() |
{ |
digitalWrite(3, HIGH); // set the LED on |
delay(100); |
digitalWrite(3, LOW); // set the LED off |
delay(700); |
} |
int set_light_sensor(int mode) |
{ |
int command; |
switch (mode) |
{ |
case SENSE_VIS: |
{ |
command=0b11000001; // setup (eye light sensing; measurement range 2) |
break; |
} |
case SENSE_IR: |
{ |
command=0b11100001; // setup (eye light sensing; measurement range 2 [4000 lx]) |
break; |
} |
default: |
return 3; |
} |
// Setup device |
Wire.beginTransmission(address); |
Wire.write(byte(0x00)); // sends address |
Wire.write(byte(command)); // setup (eye light sensing; one time measurement; measurement range 1) |
Wire.endTransmission(); // stop transmitting |
// Connect to device and set register address |
Wire.beginTransmission(address); |
Wire.write(byte(0x00)); // sends address (command register) |
Wire.endTransmission(); // stop transmitting |
// verify written command byte |
Wire.beginTransmission(address); |
Wire.requestFrom(address, 1); |
if (command != Wire.read()) |
{ |
return 4; |
Serial.print(data, BIN); |
} |
Wire.endTransmission(); // stop transmitting |
light_sensor_setup=command; |
} |
float get_light_measurement() |
{ |
unsigned int ret=0; |
// Connect to device and set register address |
Wire.beginTransmission(address); |
Wire.write(byte(0x01)); // sends address of LSB reagister |
Wire.endTransmission(); // stop transmitting |
// Connect to device and request one byte |
Wire.beginTransmission(address); |
Wire.requestFrom(address, 1); |
ret = Wire.read(); |
Wire.endTransmission(); // stop transmitting |
// Connect to device and set register address |
Wire.beginTransmission(address); |
Wire.write(byte(0x02)); // sends address of MSB register |
Wire.endTransmission(); // stop transmitting |
// Connect to device and request one byte |
Wire.beginTransmission(address); |
Wire.requestFrom(address, 1); |
ret +=256 * Wire.read(); |
Wire.endTransmission(); // stop transmitting |
return (4000.0/pow(2.0,16)*ret); |
} |
void loop() |
{ |
int lux=0; |
set_light_sensor(SENSE_VIS); //setup sensor for visible measuring |
led_blink(); // Delay for measurement |
Serial.print("luxVIS\t"); |
Serial.print(get_light_measurement(),1); |
Serial.print("\t"); |
set_light_sensor(SENSE_IR); // setup sensor for infrared measuring |
led_blink(); // Delay for measurement |
Serial.print("luxIR\t"); |
Serial.println(get_light_measurement(),1); // data print |
} |
/Modules/Sensors/ISL2902001A/SW/Wiring/i2c_light/i2c_light.pde |
---|
0,0 → 1,128 |
// I2C Light Sensor |
#include <Wire.h> |
#include <math.h> |
#define address 0x44 // A0 = L |
#define SENSE_VIS 0 |
#define SENSE_IR 1 |
#define LIGHT_AUTORANGE 0 |
#define LIGHT_RANGE1 1 |
#define LIGHT_RANGE2 2 |
#define LIGHT_RANGE3 3 |
#define LIGHT_RANGE4 4 |
void setup() |
{ |
Wire.begin(); // join i2c bus (address optional for master) |
// I2C pins PD4, PD5 |
// |
pinMode(3, OUTPUT); // LED pro blikani, aby bylo videt, ze to neco dela |
pinMode(5, OUTPUT); // LED pro blikani, aby bylo videt, ze to neco dela |
Serial.begin(9600); // Zmerena intenzita osvetleni se bude vypisovat na seriovou linku |
} |
int data = 0; |
int light_sensor_setup; |
void led_blink() |
{ |
digitalWrite(3, HIGH); // set the LED on |
delay(500); |
digitalWrite(3, LOW); // set the LED off |
delay(500); |
} |
int set_light_sensor(int mode) |
{ |
int command; |
switch (mode) |
{ |
case SENSE_VIS: |
{ |
command=0b11000000; // setup (eye light sensing; one time measurement; measurement range 1) |
break; |
} |
case SENSE_IR: |
{ |
command=0b11100000; // setup (eye light sensing; measurement range 2 [4000 lx]) |
break; |
} |
default: |
return 3; |
} |
// Setup device |
Wire.beginTransmission(address); |
Wire.write(0x00); // sends address |
Wire.write(command); // setup (eye light sensing; one time measurement; measurement range 1) |
Wire.endTransmission(); // stop transmitting |
// Connect to device and set register address |
Wire.beginTransmission(address); |
Wire.write(0x00); // sends address (command register) |
Wire.endTransmission(); // stop transmitting |
// verify written command byte |
Wire.beginTransmission(address); |
Wire.requestFrom(address, 1); |
if (command != Wire.read()) |
{ |
return 4; |
Serial.print(data, BIN); |
} |
Wire.endTransmission(); // stop transmitting |
light_sensor_setup=command; |
} |
float get_light_measurement() |
{ |
int ret=0; |
// Connect to device and set register address |
Wire.beginTransmission(address); |
Wire.write(0x01); // sends address of LSB reagister |
Wire.endTransmission(); // stop transmitting |
// Connect to device and request one byte |
Wire.beginTransmission(address); |
Wire.requestFrom(address, 1); |
ret = Wire.read(); |
Wire.endTransmission(); // stop transmitting |
// Connect to device and set register address |
Wire.beginTransmission(address); |
Wire.write(0x02); // sends address of MSB register |
Wire.endTransmission(); // stop transmitting |
// Connect to device and request one byte |
Wire.beginTransmission(address); |
Wire.requestFrom(address, 1); |
ret +=256 * Wire.read(); |
Wire.endTransmission(); // stop transmitting |
return (1000.0/pow(2.0,16)*ret); |
} |
void loop() |
{ |
int lux=0; |
set_light_sensor(SENSE_VIS); //setup sensor for visible measuring |
led_blink(); // Delay for measurement |
Serial.print("lux="); |
Serial.println(get_light_measurement(),2); |
set_light_sensor(SENSE_IR); // setup sensor for infrared measuring |
led_blink(); // Delay for measurement |
Serial.print("luxIR="); |
Serial.println(get_light_measurement(), 2); // data print |
} |
/Modules/Sensors/ISL2902001A/SW/Wiring/i2c_light/build/i2c_light.cpp |
---|
0,0 → 1,143 |
// I2C Light Sensor |
#include <Wire.h> |
#define address 0x44 // A0 = L |
#include "WProgram.h" |
void setup(); |
void loop(); |
void setup() |
{ |
Wire.begin(); // join i2c bus (address optional for master) |
pinMode(3, OUTPUT); // LED pro blikani, aby bylo videt, ze to neco dela |
pinMode(5, OUTPUT); // LED pro blikani, aby bylo videt, ze to neco dela |
Serial.begin(9600); // Zmerena intenzita osvetleni se bude vypisovat na seriovou linku |
} |
int data = 0; |
void loop() |
{ |
int lux=0; |
Serial.print("lux="); |
// Setup device |
digitalWrite(5, HIGH); |
Wire.beginTransmission(address); |
Wire.send(0x00); // sends address |
Wire.send(0b11000000); // setup (eye light sensing; one time measurement; measurement range 1) |
Wire.endTransmission(); // stop transmitting |
// Delay for measurement |
{ |
long n; |
for(n=0;n<66000;n++) |
{ |
digitalWrite(5, LOW); // set the LED off |
// delay(500); |
digitalWrite(5, HIGH); // set the LED on |
delayMicroseconds(100); |
// delay(500); |
} |
} |
// Connect to device and set register address |
Wire.beginTransmission(address); |
Wire.send(0x00); // sends address |
Wire.endTransmission(); // stop transmitting |
// Connect to device and request one byte |
Wire.beginTransmission(address); |
Wire.requestFrom(address, 1); |
data = Wire.receive(); |
Wire.endTransmission(); // stop transmitting |
// Serial.print(data, HEX); |
// Serial.print(" LSB="); |
// Connect to device and set register address |
Wire.beginTransmission(address); |
Wire.send(0x01); // sends address |
Wire.endTransmission(); // stop transmitting |
// Connect to device and request one byte |
Wire.beginTransmission(address); |
Wire.requestFrom(address, 1); |
data = Wire.receive(); |
Wire.endTransmission(); // stop transmitting |
// Serial.print(data, HEX); |
lux=data; |
// Serial.print(" MSB="); |
// Connect to device and set register address |
Wire.beginTransmission(address); |
Wire.send(0x02); // sends address |
Wire.endTransmission(); // stop transmitting |
// Connect to device and request one byte |
Wire.beginTransmission(address); |
Wire.requestFrom(address, 1); |
data = Wire.receive(); |
Wire.endTransmission(); // stop transmitting |
// Serial.print(data, HEX); |
lux+=data*256; |
/* |
Serial.print((unsigned)lux, DEC); |
Serial.print(" luxIR="); |
// Setup device |
Wire.beginTransmission(address); |
Wire.send(0x00); // sends address |
Wire.send(0b11100000); // setup (eye light sensing; measurement range 2 [4000 lx]) |
Wire.endTransmission(); // stop transmitting |
// Delay for measurement |
digitalWrite(3, HIGH); // set the LED on |
delay(500); |
digitalWrite(3, LOW); // set the LED off |
delay(500); |
// Connect to device and set register address |
Wire.beginTransmission(address); |
Wire.send(0x00); // sends address |
Wire.endTransmission(); // stop transmitting |
// Connect to device and request one byte |
Wire.beginTransmission(address); |
Wire.requestFrom(address, 1); |
data = Wire.receive(); |
Wire.endTransmission(); // stop transmitting |
// Serial.print(data, HEX); |
// Serial.print(" LSB="); |
// Connect to device and set register address |
Wire.beginTransmission(address); |
Wire.send(0x01); // sends address |
Wire.endTransmission(); // stop transmitting |
// Connect to device and request one byte |
Wire.beginTransmission(address); |
Wire.requestFrom(address, 1); |
data = Wire.receive(); |
Wire.endTransmission(); // stop transmitting |
// Serial.print(data, HEX); |
lux=data; |
// Serial.print(" MSB="); |
// Connect to device and set register address |
Wire.beginTransmission(address); |
Wire.send(0x02); // sends address |
Wire.endTransmission(); // stop transmitting |
// Connect to device and request one byte |
Wire.beginTransmission(address); |
Wire.requestFrom(address, 1); |
data = Wire.receive(); |
Wire.endTransmission(); // stop transmitting |
// Serial.print(data, HEX); |
lux+=data*256; |
*/ |
Serial.println((unsigned)lux, DEC); |
} |
/Modules/Sensors/ISL2902001A/DOC/SRC/img/ISL2902001A_QRcode.png |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/Modules/Sensors/ISL2902001A/DOC/SRC/ISL2902001A_Detail_Big.jpg |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/Modules/Sensors/ISL2902001A/DOC/SRC/ISL2902001A_Detail_Small.jpg |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/Modules/Sensors/ISL2902001A/DOC/SRC/ISL2902001A_Top_Big.jpg |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/Modules/Sensors/ISL2902001A/DOC/souhrn.pdf |
---|
0,0 → 1,959 |
%PDF-1.4 |
%¡³Å× |
+3 0 obj |
+<</Type /Pages /Kids [8 0 R ]/Count 1 >>endobj |
+ |
+4 0 obj |
+<</CreationDate (D:20110520160139+02'00')/ModDate (D:20110520160139+02'00')/Producer (Acrobat Distiller 5.0.5 \(Windows\))/Author (mija)/Creator (PScript5.dll Version 5.2)/Title (SCHEMATIC1 : PAGE1)>>endobj |
+ |
+stream |
+<?xpacket begin='' id='W5M0MpCehiHzreSzNTczkc9d' bytes='1030'?><rdf:RDF xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#' xmlns:iX='http://ns.adobe.com/iX/1.0/'><rdf:Description about='' xmlns='http://ns.adobe.com/pdf/1.3/' xmlns:pdf='http://ns.adobe.com/pdf/1.3/' pdf:CreationDate='2011-05-20T14:01:39Z' pdf:ModDate='2011-05-20T14:01:39Z' pdf:Producer='Acrobat Distiller 5.0.5 (Windows)' pdf:Author='mija' pdf:Creator='PScript5.dll Version 5.2' pdf:Title='SCHEMATIC1 : PAGE1'/> |
+<rdf:Description about='' xmlns='http://ns.adobe.com/xap/1.0/' xmlns:xap='http://ns.adobe.com/xap/1.0/' xap:CreateDate='2011-05-20T14:01:39Z' xap:ModifyDate='2011-05-20T14:01:39Z' xap:Author='mija' xap:MetadataDate='2011-05-20T14:01:39Z'><xap:Title><rdf:Alt><rdf:li xml:lang='x-default'>SCHEMATIC1 : PAGE1</rdf:li></rdf:Alt></xap:Title></rdf:Description> |
+<rdf:Description about='' xmlns='http://purl.org/dc/elements/1.1/' xmlns:dc='http://purl.org/dc/elements/1.1/' dc:creator='mija' dc:title='SCHEMATIC1 : PAGE1'/> |
+</rdf:RDF><?xpacket end='r'?> |
+ 7 0 obj |
+<</Type /Catalog /Pages 3 0 R /Metadata 5 0 R /PageLabels 2 0 R >>endobj |
+ |
+8 0 obj |
+<</Type /Page /Parent 3 0 R /Resources 9 0 R /Contents 14 0 R /MediaBox [0 0 595 842 ]/CropBox [0 0 595 842 ]/Rotate 0 >>endobj |
+ |
+9 0 obj |
+<</ProcSet [/PDF /Text ]/Font <</TT2 11 0 R /TT4 22 0 R /FXF1 37 0 R >>/ExtGState <</GS1 34 0 R /FX1 38 0 R /FX2 39 0 R /FX3 40 0 R /FX4 41 0 R /FX5 42 0 R /FX6 43 0 R /FX7 44 0 R /FX8 45 0 R /FX9 46 0 R /FX10 47 0 R /FX11 48 0 R /FX12 49 0 R /FX13 50 0 R /FX14 51 0 R /FX15 52 0 R /FX16 53 0 R /FX17 54 0 R /FX18 55 0 R /FX19 56 0 R /FX20 57 0 R /FX21 58 0 R /FX22 59 0 R /FX23 60 0 R /FX24 61 0 R /FX25 62 0 R /FX26 63 0 R /FX27 64 0 R /FX28 65 0 R /FX29 66 0 R /FX30 67 0 R /FX31 68 0 R /FX32 69 0 R /FX33 70 0 R /FX34 71 0 R /FX35 72 0 R /FX36 73 0 R /FX37 74 0 R /FX38 75 0 R /FX39 76 0 R /FX40 77 0 R /FX41 78 0 R /FX42 79 0 R /FX43 80 0 R /FX44 81 0 R /FX45 82 0 R /FX46 83 0 R /FX47 84 0 R /FX48 85 0 R /FX49 86 0 R /FX50 87 0 R /FX51 88 0 R /FX52 89 0 R /FX53 90 0 R /FX54 91 0 R /FX55 92 0 R /FX56 93 0 R /FX57 94 0 R /FX58 95 0 R /FX59 96 0 R /FX60 97 0 R /FX61 98 0 R /FX62 99 0 R /FX63 100 0 R /FX64 101 0 R /FX65 102 0 R /FX66 103 0 R /FX67 104 0 R /FX68 105 0 R /FX69 106 0 R /FX70 107 0 R /FX71 108 0 R /FX72 109 0 R /FX73 110 0 R /FX74 111 0 R /FX75 112 0 R /FX76 113 0 R /FX77 114 0 R >>/ColorSpace <</Cs6 12 0 R >>>>endobj |
+ |
+10 0 obj |
+<</Type /FontDescriptor /Ascent 905 /CapHeight 718 /Descent -211 /Flags 32 /FontBBox [-665 -325 2000 1006 ]/FontName /KOHFGJ+Arial /ItalicAngle 0 /StemV 94 /FontFile2 31 0 R >>endobj |
+ |
+11 0 obj |
+<</Type /Font /Subtype /TrueType /FirstChar 32 /LastChar 122 /Widths [278 0 0 556 0 0 0 0 0 0 0 0 278 0 278 0 556 556 556 556 556 556 556 0 0 556 278 0 0 0 0 0 0 667 667 722 722 667 611 778 722 278 500 0 556 833 722 778 667 0 722 667 611 722 667 0 667 0 0 0 0 0 0 556 0 556 0 500 556 556 278 0 556 222 222 500 0 833 556 556 0 0 333 0 278 556 500 0 0 500 500 ]/Encoding /WinAnsiEncoding /BaseFont /KOHFGJ+Arial /FontDescriptor 10 0 R >>endobj |
+ |
+12 0 obj |
+[/ICCBased 33 0 R ]endobj |
+ |
+13 0 obj |
+505 endobj |
+ |
+14 0 obj |
+<</Length 15042 /Filter /FlateDecode >>stream |
+ F¾ß H ,Ú@ ϹÜð½@õ |
+ýhú?¾Þÿ¬ÚµÿI×ýQ»?·CÆÃÃîÂm÷3òývîgѦûzÜýeNuípÝÆè¡îÏýÚ»ÿáõþgÝlÿrß¹ÿI e¬PJå¶"Îüï¼^{\û(]F»Æ6G/Èÿñ'ôz=`1òAòD Pg0ò¡*°âT¡÷?£ê¬a2ù¼ßVþËwUÐÕE£;ÆY@_SXë"\ÛqùGevq²ï'»xReÊëzÌN×{7Lï¶ÞMù/TõS·çãÚzGÿèýÝnÞý³tû]´Û$õþ¾nÓ¯Ûngäûéöj»]án·ÊÌõN¾'ÍCi!cúAfýp,dkõrùíÓþóIHn«æTf0³vÈì~\°ms |
+ivþÄÿÝÃrNJ¥Ä°bâï K(T¯³Ñw(,ïª a¥Fz%,9v¨·À¿@¬ÑÉÈ÷n7Jáþ·Ê³Þ½Ë{·k: |
+)³uVÃtØ\÷¦³yYûéßà$vÌÉ}o?ù9s0Ç}tÌ |
+"gýÿþÉ'LO8$oüC#:þob¹¡O ì_x¬?jüÍ F} |
+ZçkÑús¯µLïµ À¿~ûó8x|üfVF1\ëGavÊ |
+ã:fo(Wª3 ç2xº)_úÚ!áD")?ÿþ&Æk(¡PóO¿þò×ÿé¯.}þ§K<þjþ7`å3í<bФN§WÌ |
+w®×>ç`aè]3ý!7"¦kÌ=drÀJ×æB |
+çôtz8È¡5®Ù} ³±(`7ûz¡ßõùy¶ ·Z¹ÊË?£hÁÈôU |
+æp¬ÊÀçç'Õ)XKæàíx,\J§rzçË3×i½ß73¨G dòë¹V7MïÆ®ÍùRô<Ʊáú2¶pÍÙRÐÐü̾T=¡ÐFÁ¾T-µdÞð%pMõ¥ Þ÷=WƵ5¾æ¹4'(Ȥ+umÄ Re'ìµK |
+h´wÜ^W ù ºgíÐX4EvÑ)XKæàíX£¸øÑÎÈDè¬BëëʬLgrîì¸Îqø.±¥zX¹XªÿéHØuc!?ëc8íPèp ãRֵ̹êõ´&cÏy̪¿TVÏ¿¼e¢¯b_/"ì¦rm¢."ß6§ÎðKµ;Èñ²'Ò±bËH#äa |
+ï |
+WÖ«V|Fõ££Ý-~Ve9®¢K"͹è"AϨþp¬%sðv<óBà~B U5Ü[x}Y<+Ù:ù¤¹è®ò%]L¯P°ÿô¯üw²VdUæ"Izg3Î\z6. |
+rpàga\5}9¶ÃÈ gãR¡`-·]zEÇå_4¦sXs°NÿßàXhNo3ØþÝuªû,»î0û,Ðÿô¾}÷ISÇ8&sÎ3b` h=!ì\øíëp*D±Ì3q®¦Ô³èd`÷ 2ó3wùÒÇÉ(:ªH¦½ÃfvÕ¹u»äPÂÿ ÏÏv»ê³à<?} Éø¿þíÏòO¥×ÉOf^×oYh@Ý_Z¹Ì¬ÞhÛåc¨ÑEEÙÚvk¡Z2:m rn2Ld§ÉÔ7Ls¯îÛn|áp}ª:¥«n |
+âóW=0äzé9¦ASÁ'´W>»öü±Äùëw¾ ê,{;ÞA¯ÀÁ |
+}ÚyyJ©_¥¹»oÏd¾½pÛ詧¶£] }¤ºñ êÆjS^6¾ eåõJ]V«ßªx=ËìyæÀÏY<ÍHZö+¸6=U>Û¾a |
+Ö9x;õLø¡ßàÅ}ÃWcX|"Y$£-æq¢>áÄ<ÒØ'ü¬>a-bl1ËD!ZͯÑ!/7²)-q#ÒâoCÃ=p¬ùD{,lã-ÅÜëLÁQÁèd¸9úÒU8mÖ"MÜëͼ7õZÍfå7êé²Hz,lùU}½Îìz6>a-"b1ÉP°L!zÍ7¦¿£ClÜð2GãJÔßjEÊ*µÇªÏôlâF(8*?£7Z0¸V¤*mÜ0k|þa7åZ¸àiç¸BIUO¸×£}ÂÏêFØ"æÀ³ñhA¢eòùÇøDãFc":DãÃ7º<fóÜ Ó[.¸×£9à3ËиûÇÑä¸,~Ö¸Q |
+Ö»»ü#2>0nfÉùfìqc|"=@I -¨O¸×£}ÒÈBõ #lrPQñ i!¢wwùÇúãÆÆDtÈõÈûn}¶¯'Ãi ßËúY¼³&ùÙß}öñ´î£_àíÇøq»¶~õqÌ×±½ ë+) uÈb |
+ÜÑqÅàM¸ /»ð-O½!cozóÝPÈ;8ïùݧgYnç~ÑÈ]FÍKö¾#êóú¤ðy°;}æ£>4{ÌÜ»¯ÞMäsº Ù¥¹óM$¡ÑüO9Ëz#¾¢smx?Xûýܧd%ºi¨óã¹/Fçs |
+ïiÂs¦ÍÖµ¼ç |
+W®øc@8è3mo 2k<qu\ |
+þ¸ÍJ@°@YµäzGÓ¼%@Ïø&BË"ÐìÌôj`Aúºk'¾2«È çç'ÑB(XKæàíx>Y¶´IÙ4ÛÃdÛ!ÁÃÉ°ÂA£ëaVWcÍÑ(b5εdÞçe§1,ÎaV6åUÁLÁ#9è3m5 |
+h3Ërx³@´` |
+Ö2I¦±v<,;õ°NðèÈæ`õ~ÖÜ?LÁýÇôÕg$Q0´å$yµ` |
+þ;\o/Ú9| ðæÖüÌ]K¿£nÜÚëþ¼Ãe7<ÌEDðj.J-Ã-s¾N/|s¡CÈ´CBHÀðXÀ§ÛcäǸO25deGeëº5 P÷.É,rùGØ/³RǺp¢Î³Åõë×9z¡#óüc¥w/°UR¦Ä@â."µ8 ®`3Mêu4ÇtK;»40-Ðk2Æ(l^+¼Ñ±>xèflÅÜhFkQ±q¬)MsUCæÓÐ`6®É6ì=SÒÄ: ×$®(U¦ðbGÜ3éæ:Jªùå?²$CD û&3à¼q0¾ÄsVp«p×sär¬Û5Ýp Pq9SujRV8 /¬3&)¼fÖCÜTÓ14M `H)pj2gà%§8;>G3Ía¹NÂ2~ù2õ±iàÓ"Åb00羬æ |
+ðq°v¾YWÁlÞúÍ¢®øè¬iNSM$'gx;º9`g |
+@ªq·õ2dm¦5QúÎp[¾Y<C@§µñ¸)ÐYuøpX#û@=`óÅÔ¤G |
+~h²:*RðCggyBqÀÀ |
+%}Á%Ö¤hII1»Äâ¨B<`KÇTq4-3F·5á¬zO |
+úC 2â*!ASXfð².þÐjæµtqâA |
+Óh`ÁÇ`§ÑÀ© Þ< À/å6y£AxÌ´u@e*Î#ÊhJôé$n±>ÙÂvi!ÓîG225ba>³Ã4µL1ãCê.ÒØK45õõÚKß7ÉçÒcÛÌs@)x* |
+B*í/0Ñ5?ifqUuØèÄpGÿ!¯è|<*ëgëLßwä[üƲr%RåêÛº«?³7³ûßµõz"8¬R¥@´³G@ÀÝ°9FØÃ7IcÂ4Q¡*b#{´ ôµØ2 ¬N]C]öc¯r9žGLÕ|[iÌb' |