CraftDuino v2.0
  • - это CraftDuino - наш вариант полностью Arduino-совместимой платы.
  • CraftDuino - настоящий конструктор, для очень быстрого прототипирования и реализации идей.
  • Любая возможность автоматизировать что-то с лёгкостью реализуется с CraftDuino!
Просто добавьте CraftDuino!

100КГц шим

Искал для себя, но думаю многим будет полезно.

Собственно по этой ссылке показано как сделать 100КГц ШИМ
http://forum.arduino.cc/index.php/topic,10537.0.html

// Link http://forum.arduino.cc/index.php/topic,10537.0.html

#include "arduino.h"

void setup()
{
  // configure hardware timer2 to generate a fast PWM on OC2B (Arduino digital pin 3)
  // set pin high on overflow, clear on compare match with OCR2B
  TCCR2A = 0x23;
  TCCR2B = 0x09;  // select timer2 clock as unscaled 16 MHz I/O clock
  OCR2A = 159;  // top/overflow value is 159 => produces a 100 kHz PWM
  pinMode(9, OUTPUT);  // enable the PWM output (you now have a PWM signal on digital pin 3)
  OCR2B = 80;  // set the PWM to 50% duty cycle
  Serial.begin(57600);
}

void loop()
{
	if(Serial.available()>0){
		if(Serial.read()=='1'){
			OCR2B++;
		}
		else{
			OCR2B--;
		}
	}	
}


Подправленный код из обсуждения.
В мониторе порта передаем 1 — увеличиваем скважность, любой другой символ — уменьшаем.

Программируемый логический контроллер (ПЛК) на базе Arduino + Ethernet shield + 74HC165 + 74HC595

Идея заключалась в том, чтобы сделать контроллер исполнительных устройств с некоторой степенью автоматизации и настраиваемый полностью через web интерфейс. Логика работы контроллера хранится в файле на SD карте, а не в коде, что позволяет очень просто модифицировать логику работы, без изменения кода и перепрошивки контроллера.
Поскольку формировать web странички в коде очень не хотелось, то пришлось порыться на просторах сети и откопать такой интересный проект — TinyWebServer. С помощью этой библиотеки логика работы контроллера теперь полностью отделена от отображения страниц. Arduino не формирует страницы полностью. Интерактивная часть формируется в браузере.
Все странички, скрипты и другая информация (в моем случае еще и все настройки контроллера) хранятся на SD карте.


( Читать дальше )

Неблокируемый класс HardwareSerial (часть 2)

Обещанное продолжение…

Сегодня узнал, что 21.05.2012 вышла новая версия Arduino IDE 1.0.1.
Это событие подтолкнуло меня прочитать arduino.cc/en/Main/ReleaseNotes, где я обнаружил следующее:
* Serial transmission is now asynchronous — that is, calls to Serial.print(), etc. add data to an outgoing buffer which is transmitted in the background. Also, the Serial.flush() command has been repurposed to wait for outgoing data to be transmitted, rather than dropping received incoming data.

Причем, это, оказывается, было заявлено еще в ARDUINO 1.0 — 2011.11.30
Решил посмотреть, что же там изменилось.


( Читать дальше )

Неблокируемый класс HardwareSerial

Неблокируемый класс HardwareSerial.

Собственно все началось с того, что мне нужно было проверять датчики, подключенные к arduino, даже тогда, когда я вывожу информацию в терминал.
Проверяя длину одного цикла loop() обнаружил, что при выводе информации в порт, время цикла резко возрастает.
Начал выяснять, и обнаружил, что класс HardwareSerial при выводе данных в COM порт переходит в состояние ожидания опустошения буфера обмена.

( Читать дальше )