예제 #1
0
//gcc grovepi_digital_write.c grovepi.c -Wall
int main(void)
{		
	//Exit on failure to start communications with the GrovePi
	if(init()==-1)
		exit(1);
	
	//Set pin mode to output
	pinMode(7,1);
	while(1)
	{
		digitalWrite(7,1);
		pi_sleep(500);
		digitalWrite(7,0);
		pi_sleep(500);
	}
   	return 1;
}
예제 #2
0
//Set speed of the both motors
//	arg:
//		speed-> 0-255
int set_speed(int speed)
{
	if(speed >255)
		speed =255;
	else if(speed <0)
		speed =0;
	set_left_speed(speed);
	pi_sleep(100);
	set_right_speed(speed);
	return 1;
}
예제 #3
0
//Returns the firmware version
int fw_ver(void)
{
	int ver;
	write_block(fw_ver_cmd,0,0,0);
	pi_sleep(100);
	ver=read_byte();
	read_byte();
	if(ver==-1)
		return -1;
	return ver;
}
예제 #4
0
//Read ultrasonic sensor
//	arg:
//		pin -> 	Pin number on which the US sensor is connected
//	return:		distance in cm
int us_dist(int pin)
{
	int b1,b2;
	write_block(us_cmd,pin,0,0);
	pi_sleep(80);
	b1=read_byte();
	b2=read_byte();
	if(b1==-1 || b2==-1)
		return -1;
	return b1* 256 + b2;
}
예제 #5
0
// Read analog value from Pin
int analogRead(int pin)
{
	int b1,b2;
	write_block(analog_read_cmd,pin,0,0);
	pi_sleep(70);
	b1=read_byte();
	b2=read_byte();
	if(b1==-1 || b2==-1)
		return -1;
	return b1* 256 + b2;
}
예제 #6
0
float volt(void)
{
    int v[2];
    float voltage;
    write_block(volt_cmd,0,0,0);
    pi_sleep(100);
    v[0]=read_byte();
    v[1]=read_byte();
    voltage=v[0]*256+v[1];
	voltage=(5.0*voltage/1024)/.4;
    return voltage;
}
예제 #7
0
//Read the trim value in	EEPROM if present else return -3
int trim_read(void)
{
	int b1,b2,trim;
	if(write_block(trim_read_cmd,0,0,0)==-1)
		return -1;
	pi_sleep(80);
	b1=read_byte();
    b2=read_byte();
	if(b1==-1 || b2==-1)
		return -1;
	trim=b1*256+b1;
	if (trim ==255)
		return -3;
	return trim;
}
예제 #8
0
// Arduino Digital Read
int digitalRead(int pin)
{
	int dRead;
	if(pin==10||pin==15||pin==0||pin==1)
	{
		if(write_block(digital_read_cmd,pin,0,0)==-1)
			return -1;
		pi_sleep(100);
		dRead=read_byte();
		read_byte();
		if(dRead==-1)
			return -1;
		return dRead;
	}
	else
		return -2;
}
예제 #9
0
파일: grove_dht.c 프로젝트: iotmx/iotunitec
int main(void)
{		
	float *ht;
	
	//Exit on failure to start communications with the GrovePi
	if(init()==-1)
		exit(1);
	
	//Set pin mode to input
	pinMode(7,0);
	while(1)
	{
		ht=dht(7,0);
		printf("humidity = %.02f%% temp = %.02f C\n", ht[0], ht[1]);
		//Sleep for 50ms
		pi_sleep(50);
	}
   	return 1;
}
예제 #10
0
int main(void)
{		
	int dval;
	
	//Exit on failure to start communications with the GrovePi
	if(init()==-1)
		exit(1);
	
	//Set pin mode to input
	pinMode(8,0);
	while(1)
	{
		dval=ultrasonicRead(8);
		printf("Digital read %d\n", dval);
		//Sleep for 50ms
		pi_sleep(50);
	}
   	return 1;
}