Лучший эмулятор Arduino UnoArduSim V2.6. Третья серия.
Пример 1. Запись строки в файл test.txt, на SD карту.
//Начало скетча 1
Копировать этот код
#include "SPI.h"
#include "SD.h"
File myFile ; // переменная myFile класса File
void setup ( ) {
if ( ! SD . begin ( ) ) { // инициализация SD карты
return ;
}
myFile = SD . open ( "test.txt" , FILE_WRITE ) ; // если файла с именем " test.txt " - отсутствует, то он будет создан.
if ( myFile ) { // если файл открыт для записи, то выполнить следующее…
myFile . println ( "Hallo world!" ) ;
myFile . close ( ) ; // закрыть файл
}
}
void loop ( ) {
}
//Конец скетча 1
Пример 2. Управление сервомотором без использования библиотек.
//Начало скетча 2
Копировать этот код
void setup ( ) {
pinMode ( 9 , OUTPUT ) ;
}
void loop ( ) {
servo ( 9 , 0 ) ;
delay ( 2000 ) ;
servo ( 9 , 90 ) ;
delay ( 2000 ) ;
servo ( 9 , 180 ) ;
delay ( 2000 ) ;
servo ( 9 , 90 ) ;
delay ( 2000 ) ;
}
void servo ( int pin , int angle )
{
for ( int i = 0 ; i <= 60 ; i ++ )
{
int pulseWidth = ( angle * 11 ) + 500 ;
digitalWrite ( pin , HIGH ) ;
delayMicroseconds ( pulseWidth ) ;
digitalWrite ( pin , LOW ) ;
delay ( 20 - pulseWidth / 1000 ) ;
}
}
//Конец скетча 2
Пример 3. Для модуля на 4 светодиода.
//Начало скетча 3
Копировать этот код
void setup ( ) {
pinMode ( 0 , OUTPUT ) ;
pinMode ( 1 , OUTPUT ) ;
pinMode ( 2 , OUTPUT ) ;
pinMode ( 3 , OUTPUT ) ;
}
void loop ( ) {
digitalWrite ( 0 , HIGH ) ;
delay ( 500 ) ;
digitalWrite ( 0 , LOW ) ;
digitalWrite ( 1 , HIGH ) ;
delay ( 500 ) ;
digitalWrite ( 1 , LOW ) ;
digitalWrite ( 2 , HIGH ) ;
delay ( 500 ) ;
digitalWrite ( 2 , LOW ) ;
digitalWrite ( 3 , HIGH ) ;
delay ( 500 ) ;
digitalWrite ( 3 , LOW ) ;
}
//Конец скетча 3
Пример 4. Отображение цифр на модуле 7 сегментный индикатор.
//Начало скетча 4
Копировать этот код
int pins [ 4 ] = { 0 , 1 , 2 , 3 } ;
//контакты 0, 1, 2, 3, на плате Arduino
//контакты D0, D1, D2, D3 дешифратора К176ИД2
// значения для вывода цифр 0-9
byte numbers [ 10 ] = { 0b0000 , 0b1000 , 0b0100 , 0b1100 , 0b0010 , 0b1010 , 0b0110 , 0b1110 , 0b0001 , 0b1001 } ;
// переменная для хранения значения текущей цифры
int number = 0 ;
void setup ( )
{
// Сконфигурировать контакты как выходы
for ( int i = 0 ; i < 4 ; i ++ )
pinMode ( pins [ i ] , OUTPUT ) ;
pinMode ( 7 , OUTPUT ) ; digitalWrite ( 7 , LOW ) ; //для включения дешифратора
}
void loop ( ) {
showNumber ( number ) ;
delay ( 1000 ) ;
number = ( number + 1 ) % 10 ;
}
// функция вывода цифр
void showNumber ( int num )
{
for ( int i = 0 ; i < 4 ; i ++ )
{
if ( bitRead ( numbers [ num ] , 3 - i ) == HIGH ) { // зажечь сегмент
digitalWrite ( pins [ i ] , HIGH ) ;
} else { // потушить сегмент
digitalWrite ( pins [ i ] , LOW ) ;
}
}
}
//Конец скетча 4
Пример 5. Бегущая дорожка для модуля сдвиговый регистр.
//Начало скетча 5
Копировать этот код
#include "SPI.h"
enum { REG_SELECT = 4 } ; // CS к 4, CLK 13, Din 11
void setup ( ) {
SPI . begin ( ) ;
pinMode ( REG_SELECT , OUTPUT ) ;
digitalWrite ( REG_SELECT , LOW ) ;
SPI . transfer ( 0 ) ;
digitalWrite ( REG_SELECT , HIGH ) ;
}
void rotate ( uint8_t & bits ) {
uint8_t high_bit = bits & ( 1 << 7 ) ? 1 : 0 ;
bits = ( bits << 1 ) | high_bit ;
}
void loop ( ) {
static uint8_t nomad = 1 ;
digitalWrite ( REG_SELECT , LOW ) ;
SPI . transfer ( nomad ) ;
digitalWrite ( REG_SELECT , HIGH ) ;
rotate ( nomad ) ;
delay ( 200 ) ;
}
//Конец скетча 5
Видео "Эмулятор Arduino UnoArduSim V2.6. Третья серия."
Использование модулей SD карта, сдвиговый регистр, сервомотор.