возможно ли подружить Attiny13 с сервоприводом ?

Тема в разделе "Микроконтроллеры AVR", создана пользователем Nikolaj666, 18 июл 2016.

  1. Nikolaj666

    Nikolaj666 Нуб

    Есть вот такой скетч :
    #include <Servo.h>
    Servo myservo;
    int pos = 5;
    int button = 7;
    void setup() {
    myservo.attach(9);
    pinMode(button, INPUT);
    }
    void loop(){
    if (digitalRead(button) == HIGH) {
    myservo.write(175);
    }
    if (digitalRead(button) == LOW) {
    myservo.write(5);
    } }
    Возможно это залить это в Attiny13 ? или может есть решение проще. нужно что бы при появлении логической 1 серва повернулась на 180 градусов, а при лог 0 вернулась в исходное положение. делаю электро-механическую музыкальную шкатулку на вот такой штуке(http://ru.aliexpress.com/item/Sanky...1936030035.html?spm=2114.13010608.0.72.3c2zC3). должна подниматься крышка
     
  2. Nikolaj666

    Nikolaj666 Нуб

    пробовал подключать в Arduino IDE плату Attiny13 выдаёт ошибки компиляции

    Arduino: 1.6.9 (Windows XP), Плата:"ATtiny13 (ATtiny13a), 1.2 MHz"

    Изменены опции сборки, пересобираем все
    C:\Program Files\Arduino\libraries\Servo\src\avr\Servo.cpp: In function 'void TIMER1_COMPA_vect()':

    C:\Program Files\Arduino\libraries\Servo\src\avr\Servo.cpp:82:31: error: 'TCNT1' was not declared in this scope

    handle_interrupts(_timer1, &TCNT1, &OCR1A);

    ^

    C:\Program Files\Arduino\libraries\Servo\src\avr\Servo.cpp:82:39: error: 'OCR1A' was not declared in this scope

    handle_interrupts(_timer1, &TCNT1, &OCR1A);

    ^

    C:\Program Files\Arduino\libraries\Servo\src\avr\Servo.cpp: In function 'void initISR(timer16_Sequence_t)':

    C:\Program Files\Arduino\libraries\Servo\src\avr\Servo.cpp:128:5: error: 'TCCR1A' was not declared in this scope

    TCCR1A = 0; // normal counting mode

    ^

    C:\Program Files\Arduino\libraries\Servo\src\avr\Servo.cpp:129:5: error: 'TCCR1B' was not declared in this scope

    TCCR1B = _BV(CS11); // set prescaler of 8

    ^

    In file included from c:\program files\arduino\hardware\tools\avr\avr\include\avr\io.h:99:0,

    from c:\program files\arduino\hardware\tools\avr\avr\include\avr\interrupt.h:38,

    from C:\Program Files\Arduino\libraries\Servo\src\avr\Servo.cpp:22:

    C:\Program Files\Arduino\libraries\Servo\src\avr\Servo.cpp:129:18: error: 'CS11' was not declared in this scope

    TCCR1B = _BV(CS11); // set prescaler of 8

    ^

    C:\Program Files\Arduino\libraries\Servo\src\avr\Servo.cpp:130:5: error: 'TCNT1' was not declared in this scope

    TCNT1 = 0; // clear the timer count

    ^

    C:\Program Files\Arduino\libraries\Servo\src\avr\Servo.cpp:136:5: error: 'TIFR1' was not declared in this scope

    TIFR1 |= _BV(OCF1A); // clear any pending interrupts;

    ^

    In file included from c:\program files\arduino\hardware\tools\avr\avr\include\avr\io.h:99:0,

    from c:\program files\arduino\hardware\tools\avr\avr\include\avr\interrupt.h:38,

    from C:\Program Files\Arduino\libraries\Servo\src\avr\Servo.cpp:22:

    C:\Program Files\Arduino\libraries\Servo\src\avr\Servo.cpp:136:18: error: 'OCF1A' was not declared in this scope

    TIFR1 |= _BV(OCF1A); // clear any pending interrupts;

    ^

    C:\Program Files\Arduino\libraries\Servo\src\avr\Servo.cpp:137:5: error: 'TIMSK1' was not declared in this scope

    TIMSK1 |= _BV(OCIE1A) ; // enable the output compare interrupt

    ^

    In file included from c:\program files\arduino\hardware\tools\avr\avr\include\avr\io.h:99:0,

    from c:\program files\arduino\hardware\tools\avr\avr\include\avr\interrupt.h:38,

    from C:\Program Files\Arduino\libraries\Servo\src\avr\Servo.cpp:22:

    C:\Program Files\Arduino\libraries\Servo\src\avr\Servo.cpp:137:20: error: 'OCIE1A' was not declared in this scope

    TIMSK1 |= _BV(OCIE1A) ; // enable the output compare interrupt

    ^

    exit status 1
    Ошибка компиляции для платы ATtiny13 (ATtiny13a).
     
  3. ZAZ-965

    ZAZ-965 Гуру

    @Nikolaj666, каким плагином подружили Arduino с Attiny13? Ваш скетч компилируется в 2кБ, у Тини13 - 1кБ и один таймер0.
     
  4. Nikolaj666

    Nikolaj666 Нуб

    добавил в C:\Program Files\Arduino\hardware https://yadi.sk/d/sVPOOPijtQjN6 я видел что скетч больше памяти. может другой МК какой подобрать
     
  5. ZAZ-965

    ZAZ-965 Гуру

    Можно применить и Attiny13, но писать на WinAVR. Или Arduino Pro Mini - маленькая и недорогая.
     
  6. Nikolaj666

    Nikolaj666 Нуб

    пошерстил инет и тоже склоняюсь к заказу у китайцев mini
     
  7. ostrov

    ostrov Гуру

    Attiny85 стоит как 13, но памяти в 8 раз больше. Но делать на них имеет смысл только если критичны размеры схемки, если же размер не имеет значения, то Про Мини, разумеется, правильный выбор. Стоит копейки при полноценных возможностях Уны. Можно вариант на 168 брать, чуть дешевле.
     
  8. Nikolaj666

    Nikolaj666 Нуб

    да, так и сделаю на мини. спасибо всем за советы