1

Тема: Первые шаги.

Отдельного раздела для зеленых нет,поэтому рискну начать тему тут.
Ситуация банальна-новичок.К тому же семья,работа и все такое.
Т.е. иногда нет времени,иногда сил на то чтоб прожевывать тонны информации
для поиска ответов.
Взял поиграться uno+keyboard shield с дисплеем.
Из ide примеры попробовал,диодик мигает,дисплей горит,
данные показывает(заливал скетчи из сети)-кнопочки отображаются при нажатии,
в общем классика.Брал еще датчик расстояния-тоже вроде как получилось завести дальномер.
Но вот что делать с базовым набором на руках-ума не приложу.
Вкладывать много денег не охота,т.к. еще неясно увлекусь ли серьезно,а покупать чтоб валялось
потом тоже ни к чему.
Собственно теперь суть вопроса-а что можно придумать с имеющимся железом?
Больше интересно программирование,то есть хотелось бы какие то простенькие задачки
с пошаговым разъяснением именно процесса написания программы.
Заранее благодарен за внимание.

2

Re: Первые шаги.

Довольно таки сложный вопрос, скажу я вам. smile
Сомневаюсь что мои советы аля сделай метеостанцию, или хитро сделанные часы дадут вам интерес к изучению ардуино.

А что собственно входит в ваш базовый набор? Они ведь разные.

3

Re: Первые шаги.

genaonyx пишет:

Довольно таки сложный вопрос, скажу я вам. smile
Сомневаюсь что мои советы аля сделай метеостанцию, или хитро сделанные часы дадут вам интерес к изучению ардуино.

А что собственно входит в ваш базовый набор? Они ведь разные.

))все что есть я уже перечислил-уно,клава с 1602,буззер
и ультразвуковой датчик.Ковырнул в сети скетчик который при приближении подает звуковой сигнал на буззер.Звук подавался,но щелчками,путем гуглинга удалось заставить пищать динамик нормально.
Теперь интересно сделать чтобы уровень звука становился громче при приближении объекта к датчику расстояния и наоборот тише при отдалении.
Исходник щас не под рукой,в общем то нужна критика ну и местами пошаговое руководство по коду на конкретных примерах.
И еще интересно-если я все правильно понял,то язык в
ide это си?Реально ли заиметь скилы именно по программированию на си используя ардуино в качестве учебного пособия?

4

Re: Первые шаги.

все что есть я уже перечислил-уно,клава с 1602,буззер и ультразвуковой датчик

Ну с таким количеством, приходит в голову, разве что - ультразвуковая рулетка. smile

в общем то нужна критика ну и местами пошаговое руководство по коду на конкретных примерах.

По мере возможности.

И еще интересно-если я все правильно понял,то язык в ide это си?Реально ли заиметь скилы именно по программированию на си используя ардуино в качестве учебного пособия?

Это Wiring - эдакая Си подобная библиотека упрощающая программирование. Изучить с нею вы сможете разве что основы. Хотя вы можете в той же Arduino IDE программировать и на Си, и на Ассемблере. Тут вы получите море боли и мучений, ну и огромный скилл соответственно.

5

Re: Первые шаги.

genaonyx пишет:

все что есть я уже перечислил-уно,клава с 1602,буззер и ультразвуковой датчик

Ну с таким количеством, приходит в голову, разве что - ультразвуковая рулетка. smile

в общем то нужна критика ну и местами пошаговое руководство по коду на конкретных примерах.

По мере возможности.

И еще интересно-если я все правильно понял,то язык в ide это си?Реально ли заиметь скилы именно по программированию на си используя ардуино в качестве учебного пособия?

Это Wiring - эдакая Си подобная библиотека упрощающая программирование. Изучить с нею вы сможете разве что основы. Хотя вы можете в той же Arduino IDE программировать и на Си, и на Ассемблере. Тут вы получите море боли и мучений, ну и огромный скилл соответственно.

Для начала и рулетка подойдет.
Но как уже говорил-собрал подобие парктроника.
Теперь интересно сделать так чтоб по мере приближения или удаления
помехи к датчику звук становился либо тише либо громче.
Ну и так же критика моих доработок кода.
Вот мои допилы

/*
    This code should work to get warning cross the buzzer when something be closer than 0.5 meter
    Circuit is ultrasonic sensor and buzzer +5v and Arduino uno is used
    http://myrobotduino.blogspot.my/
*/
// Define pins for ultrasonic and buzzer
int const trigPin = 10;
int const echoPin = 9;
int const buzzPin = 2;

void setup()
{
    pinMode(trigPin, OUTPUT); // trig pin will have pulses output
    pinMode(echoPin, INPUT); // echo pin should be input to get pulse width
    pinMode(buzzPin, OUTPUT); // buzz pin is output to control buzzering

}

void loop()
{
    // Duration will be the input pulse width and distance will be the distance to the obstacle in centimeters
    int duration, distance;
    // Output pulse with 1ms width on trigPin
    digitalWrite(trigPin, HIGH); 
    delay(1);
    digitalWrite(trigPin, LOW);
    // Measure the pulse input in echo pin
    duration = pulseIn(echoPin, HIGH);
    // Distance is half the duration devided by 29.1 (from datasheet)
    distance = (duration/2) / 29.1;
    // if distance less than 0.5 meter and more than 0 (0 or less means over range) 
    if (distance <= 50 && distance >= 0) 
    {
        // Buzz
        digitalWrite(buzzPin, HIGH);
      tone (buzzPin, 800);
      delay(005);
     }
    else 
    {
        // Don't buzz
        digitalWrite(buzzPin, LOW);
      noTone(buzzPin);
     
     }
    // Waiting 60 ms won't hurt any one
    delay(10);
}

Вот оригинальный скетч,он работает но динамик вместо звука начинает просто щелкать.

/*
    This code should work to get warning cross the buzzer when something be closer than 0.5 meter
    Circuit is ultrasonic sensor and buzzer +5v and Arduino uno is used
    http://myrobotduino.blogspot.my/
*/
// Define pins for ultrasonic and buzzer
int const trigPin = 10;
int const echoPin = 9;
int const buzzPin = 2;

void setup()
{
    pinMode(trigPin, OUTPUT); // trig pin will have pulses output
    pinMode(echoPin, INPUT); // echo pin should be input to get pulse width
    pinMode(buzzPin, OUTPUT); // buzz pin is output to control buzzering

}

void loop()
{
    // Duration will be the input pulse width and distance will be the distance to the obstacle in centimeters
    int duration, distance;
    // Output pulse with 1ms width on trigPin
    digitalWrite(trigPin, HIGH); 
    delay(1);
    digitalWrite(trigPin, LOW);
    // Measure the pulse input in echo pin
    duration = pulseIn(echoPin, HIGH);
    // Distance is half the duration devided by 29.1 (from datasheet)
    distance = (duration/2) / 29.1;
    // if distance less than 0.5 meter and more than 0 (0 or less means over range) 
    if (distance <= 50 && distance >= 0) 
    {
        // Buzz
        digitalWrite(buzzPin, HIGH);
      
     }
    else 
    {
        // Don't buzz
        digitalWrite(buzzPin, LOW);
        
    }
    // Waiting 60 ms won't hurt any one
    delay(10);
}

Про различие чистого Си и того что в ардуине почитал,
ну и соответственно хотел бы попробовать клацать код не библиотекой
а чистым Си

6

Re: Первые шаги.

недавно я выкладывал статью по работе с ультразвуковым дальномером. http://arduino.on.kg/ultrazvukovoy-dalnomer-HC-SR04
Советую прочитать.

 digitalWrite(trigPin, HIGH); 
    delay(1);
    digitalWrite(trigPin, LOW);
    // Measure the pulse input in echo pin
    duration = pulseIn(echoPin, HIGH);
    // Distance is half the duration devided by 29.1 (from datasheet)
    distance = (duration/2) / 29.1;

delay(1); в корне неправильно, пока спим целую миллисекунду можем пропустить ответ (эхо).
distance = (duration/2) / 29.1; можно сократить до  distance  = duration / 58;

if (distance <= 50 && distance >= 0) 
    {
        // Buzz
        digitalWrite(buzzPin, HIGH);
      
     }
    else 
    {
        // Don't buzz
        digitalWrite(buzzPin, LOW);
        
    }

Правильно что он не работает а просто трещит.
Принцип работы у него такой, когда мы подаем +5В мембрана сдвигается, когда перестаем подавать, она возвращается обратно на свое место. Звук же генерируется быстрым перемещением мембраны туда-обратно. С какой частотой она двигается - такой звук и получим. а в примере который вы описали как оригинал, мембрана звук не генерирует. Возможно просто демонстрирует принцип работы не более.

О туда же вы и не сможете изменить громкость. Максимум подобрать частоту звука которая менее слышна уху и все. По этому проще реализовать как в настоящих парктронитах. Чем ближе к объекту тем чаще звенит пищалка.