Witam Was.
Mam taki problemik i nie mogę sobie z nim poradzić.
Chciałem zrobić czujnik ruchu wykorzystując diodę led, ale niestety nie chce zaskoczyć :/.
Kod opierałem o teorię z
http://blog.makezine.com/archive/2006/06/led_touch_sensor.html
oraz trochę na kodzie z strony
http://www.thebox.myzen.co.uk/Workshop/LED_Sensing_files/Sensor_LEDs.pde
Co może być nie tak ?
Do pinu 0 DDRD jest podpięta dioda pokazująca czy czujnik działa.
Pod pin 2 jest podpięta katoda czujnika wraz z rezystorem 220R
Pod pin 1 jest podpięta anoda bezpośrednio połączona z led.
Kod może nie jest idealny ale dopiero się uczę.
Pozdrawiam serdecznie.
Mam taki problemik i nie mogę sobie z nim poradzić.
Chciałem zrobić czujnik ruchu wykorzystując diodę led, ale niestety nie chce zaskoczyć :/.
Kod opierałem o teorię z
http://blog.makezine.com/archive/2006/06/led_touch_sensor.html
oraz trochę na kodzie z strony
http://www.thebox.myzen.co.uk/Workshop/LED_Sensing_files/Sensor_LEDs.pde
Co może być nie tak ?
Do pinu 0 DDRD jest podpięta dioda pokazująca czy czujnik działa.
Pod pin 2 jest podpięta katoda czujnika wraz z rezystorem 220R
Pod pin 1 jest podpięta anoda bezpośrednio połączona z led.
Kod może nie jest idealny ale dopiero się uczę.
Pozdrawiam serdecznie.
#include <avr/io.h>
#include <delay_x.h>
#include <inttypes.h>
#define Led1on PORTD = 0x0E;
#define ledsw1 PORTD = 0x03;
#define ledsw2 PORTD = 0x05;
#define output_all DDRD |= _BV(0) | _BV(1) | _BV(2); // ustaw jako wyjscia
#define input DDRD &= ~_BV(2); // ustaw jedno wejscie
#define pullupled_1 PORTD &= ~_BV(2);
#define pullupled_of PORTD |= _BV(2);
#define led_gnd PORTD &= ~_BV(1);
// Function prototypes
int main(void);
void setup();
uint8_t stan;
uint8_t czas;
void setup() {
}
int main( void ) // program główny
{
czas = 60;
output_all;
while(1)
{
ledsw1; // zapal diode
_delay_ms(1);
ledsw2; // zamien bieguny
_delay_ms(1);
input; // ustaw katode jako odczyt
pullupled_1; // wylacz podciaganie do plusa
led_gnd; // masa na anodzie
if(bit_is_clear(PIND, 2)){
Led1on;
}
_delay_ms(czas);
pullupled_of;
output_all;
}
}
