OR-LINESENS-KTIRx10 — различия между версиями

Материал из roboforum.ru Wiki
Перейти к: навигация, поиск
(Документация)
Строка 24: Строка 24:
  
 
==Документация==
 
==Документация==
 +
 +
#include "defines.h"
 +
 +
#include <ctype.h>
 +
#include <stdint.h>
 +
#include <stdio.h>
 +
#include <string.h>
 +
 +
#include <avr/interrupt.h>
 +
 +
#include <util/delay.h>
 +
 +
#include "uart.h"
 +
 +
FILE uart_str = FDEV_SETUP_STREAM(uart_putchar, uart_getchar, _FDEV_SETUP_RW);
 +
 +
int main(void)
 +
{
 +
  uart_init();
 +
  stdout = stdin = &uart_str;
 +
  printf("Linesensor-test ready!\n");
 +
 +
  DDRC=0x20;
 +
  DDRD=0x30;
 +
 +
  //PWM, Phase and frequency correct, TOP=ICR1
 +
  TCCR1A=0xA0; //clear on up-counting, set on down-counting
 +
  TCCR1B=0x12; //Clock prescaler 1/8
 +
  ICR1=9216;  //Set 50Hz frequency
 +
  uint16_t baseA=(153*2+1)*23/10;
 +
  uint16_t baseB=(156*2+1)*23/10;
 +
  OCR1A=baseA;
 +
  OCR1B=baseB;
 +
  while(1==1){
 +
    DDRA=0xFF;
 +
    PORTA=0xFF;
 +
    DDRC|=0xC0;
 +
    PORTC|=0xC0;
 +
    _delay_us(3000);
 +
    DDRA=0x00;
 +
    PORTA=0x00;
 +
    DDRC&=~0xC0;
 +
    PORTC&=~0xC0;
 +
    PORTC|=0x20;
 +
    _delay_us(500);
 +
    int x=PINA;
 +
    int y=PINC>>6;
 +
    if(y==1){ y=2; }else if (y==2){y=1;};
 +
    x=x+(y<<8);
 +
 +
    for(int i=0; i<10; i++){
 +
      int j=x&0x01;
 +
      printf("%d",j);
 +
      x=x>>1;
 +
    };
 +
    printf("\n");
 +
 +
    _delay_us(30000);
 +
  };
 +
}
 +
 +
 
[[Media:OR-LINESENS-KTIRx10-UG.pdf|OR-LINESENS-KTIRx10 — Инструкция по эксплуатации.pdf]] (пока не готова)
 
[[Media:OR-LINESENS-KTIRx10-UG.pdf|OR-LINESENS-KTIRx10 — Инструкция по эксплуатации.pdf]] (пока не готова)
  
 
==Форум поддержки==
 
==Форум поддержки==
 
[[http://www.roboforum.ru/viewtopic.php?f=69&t=5879 http://www.roboforum.ru/viewtopic.php?f=69&t=5879]]
 
[[http://www.roboforum.ru/viewtopic.php?f=69&t=5879 http://www.roboforum.ru/viewtopic.php?f=69&t=5879]]

Версия 16:22, 28 сентября 2009


Датчик линии OR-LINESENS-KTIRx10

Краткие характеристики

Внешний вид модуля.

Габариты модуля: 102 х 15 х 6 мм (длина*ширина — по печатной плате)

Количество оптопар: 10шт

Шаг оптопар: 10мм

Тип оптопар: KTIR0721ds

Вес: не более 15г

Распространенность модуля

  • Продано 0 модулей
  • Кроме того в использовании 2 модуля: =DeaD=, blindman

Документация

#include "defines.h"

#include <ctype.h>
#include <stdint.h>
#include <stdio.h>
#include <string.h>

#include <avr/interrupt.h>

#include <util/delay.h>

#include "uart.h"

FILE uart_str = FDEV_SETUP_STREAM(uart_putchar, uart_getchar, _FDEV_SETUP_RW);

int main(void)
{
 uart_init();
 stdout = stdin = &uart_str;
 printf("Linesensor-test ready!\n");

 DDRC=0x20;
 DDRD=0x30;
 //PWM, Phase and frequency correct, TOP=ICR1
 TCCR1A=0xA0; //clear on up-counting, set on down-counting
 TCCR1B=0x12; //Clock prescaler 1/8
 ICR1=9216;  //Set 50Hz frequency	
 uint16_t baseA=(153*2+1)*23/10;
 uint16_t baseB=(156*2+1)*23/10;
 OCR1A=baseA;
 OCR1B=baseB;
 while(1==1){
   DDRA=0xFF;
   PORTA=0xFF;
   DDRC|=0xC0;
   PORTC|=0xC0;
   _delay_us(3000);
   DDRA=0x00;
   PORTA=0x00;
   DDRC&=~0xC0;
   PORTC&=~0xC0;
   PORTC|=0x20;
   _delay_us(500);
   int x=PINA;
   int y=PINC>>6;
   if(y==1){ y=2; }else if (y==2){y=1;};
   x=x+(y<<8);

   for(int i=0; i<10; i++){
     int j=x&0x01;
     printf("%d",j);
     x=x>>1;
   };
   printf("\n");
	
   _delay_us(30000);
 };
}


OR-LINESENS-KTIRx10 — Инструкция по эксплуатации.pdf (пока не готова)

Форум поддержки

[http://www.roboforum.ru/viewtopic.php?f=69&t=5879]