V pohode som sa veľmi dosť toho naučil síce to moc nevidno ale vážim si toho
Mne toho moc nešlo do hlavy čo pod "switch_read" mam pozerať...
Akurát
No čo to robí:
No ak je pod stredným snímačom čierna páska tak svietia obe ledky...
Lavy/Pravý tak isto svieti pod ich smerom ledka Prava=prava led...
Ešte sa k tomu bude niečo dopisovať ?
Raz som počul že keď sa bude ten robotík hýbať po čiare a niejak sa to nakoduje tak si zapametá to ako išiel a spraví to aj bez senzora
Skúsil som upraviť aj jeho chod...
Nakoľko nemám toľko čiernej izolačky skúsim to zajtra kúpim ju..
Kód: Vybrat vše
while(1)
{
// zakladni nekonecna smycka
if (cara_je(UPROSTRED)) {led_on(LED_7|LED_8); motor_run(100, -100);}
else if (cara_je(VLEVO)) { led_on(LED_7); led_off(LED_8); motor_run(100, 0); }
else if (cara_je(VPRAVO)) { led_off(LED_7); led_on(LED_8); motor_run(0, -100); }
}
No ešte si lámem nad jedným hlavu Ak si trúfaš mi pomôcť
Troška ti to popíšem...
Pod každým jedným koleskom je senzor...
(Na kolese z nútornej strany čierno-bieli pásik...)
Ja sa snažím aby mi po dajme tomu 20otáčkach zastavil...
Ototočil sa o 90stupňov a pokračoval zas 30krokov a zas zastavil... a tak...
Tu je môj prvý krok stým no som len na začiatku...
Kód: Vybrat vše
int main(void)
{
init_led_motor(); // Initializacia motorov a lediek.
init_encoder(); // Initializacia koderov.
initSegDisplay(); // Initializacia displeja.
display_dec(0); // Nastavenie pociatocnej hodnoty na zobrazenie.
while(1)
{
if(is_low(PINB,PB2)) // Stlacenim tlacidla SW2 sa zapnu motory.
{
motor_run_increment(100, -100);
while(is_low(PINB,PB2)){} // Protizakmitove cakanie.
}
if (g_encoder.left==20)
{
motor_set(0, 0);
encoder_reset();
}
if(is_low(PINB,PB3)) // Stlacenim tlacidla SW3 sa kodery resetuju.
{
tbi(GICR,INT0); // Zmena povolenia externeho prerusenia.
tbi(GICR,INT1);
encoder_reset();
display_dec(0);
while(is_low(PINB,PB3)){} // Protizakmitove cakanie.
}
}