DIYmall 9G Servo with Arduino UNO R3 Tutorial

Servo control generally requires a base pulse about 20MS,if the degree is not 180 degree, you need adjust the base pulse in the Arduino code

0.5ms—0 degree
1.0ms—45 degree
1.5ms-—90 degree
2.0ms — 135 degree
2.5ms— 180 degree

Below is Arduino code:

 

#include <Servo.h>

Servo servo1;

 

void setup()

{

servo1.attach(3);

 

servo1.writeMicroseconds(2500); // = -90°

delay(500);

servo1.writeMicroseconds(500); // = 0°

delay(500);

servo1.writeMicroseconds(1500); // = 90°

delay(500);

servo1.writeMicroseconds(2500); // = -90°

delay(500);

servo1.writeMicroseconds(500); // = 0°

delay(500);

servo1.writeMicroseconds(1500); // = 90°

delay(500);

}

void loop() {}

 

 

Test result video links:

sweep from left to right:  https://youtu.be/arjDG0e88Bs

From left to middle then to right:  https://youtu.be/LZMyuq_Ohn0

amazon US https://www.amazon.com/dp/B074SH8XRK

email  sales@diymalls.com

 

 

DIYmall 9G Servo and Servo Tester

Today, we will learn how to test 9G servo
You need prepare:
9G servo
Servo Tester
USB to TTL serial cable

The connection as below:
9G Servo      Servo Tester  out              Servo Tester in         Serial Cable
Yellow              S                                                  S                                   White
Red                  +                                                   +                                    Red
Brown              –                                                    –                                   Black

Video link  https://youtu.be/1ECQAyoVbqU

Servo link https://www.amazon.com/dp/B012LZKTDO

9g servo link https://www.amazon.com/dp/B074SG74KV

DIYmall VK-172 GPS Module u-blox 7020

The DIYmall Vk-172 is a pocket-sized unit that reads global signals and transmits that data to your computer via USB cable. It’s an especially interesting tool for people developing cutting-edge micro computers, like the Raspberry Pi or Android Mini PC.

It use u-blox 7020 chipset.
It can support Windows Andorid Linux sytem, Raspberry PI and EMGRAND car

Windows Driver Link: https://www.u-blox.com/en/product/u-center-windows
Android driver https://www.u-blox.com/en/product/u-center-androidor
https://play.google.com/store/apps/details?id=com.ublox.ucenter
Russia driver: http://www.drive2.ru/l/5033334/

It is  recommended by ezvid website:
https://wiki.ezvid.com/best-gps-antennas

amazon link https://www.amazon.com/dp/B00NWEEWW8

How to Flash STM32F103CBT6

Connection: LORAM3 and ST-link
GND -GND
3V3-3V3
DIO-DIO
CLK-CLK

Open software STM32 ST-LINK Utility, click target-connect

Then click target-program

Then choose flash file and click start

 

How to connect WS2812 RGB leds with an Arduino UNO

Conncetion with Arduino uno :

Arduino UNO  to  WS2812
5V  to 5V
GND to GND
pin 6 to DI

video link https://youtu.be/M-bn7BE6qNA
ebay link https://www.ebay.com/itm/282225658296
amazon link  
https://www.amazon.com/dp/B0105VMT4S
https://www.amazon.com/dp/B0105VMWRM
https://www.amazon.com/dp/B0105VMUUQ

Code:

#include <Adafruit_NeoPixel.h>

#define PIN 6
#define NUM_LEDS 24
#define BRIGHTNESS 200

Adafruit_NeoPixel strip = Adafruit_NeoPixel(NUM_LEDS, PIN, NEO_GRB + NEO_KHZ800);//NEO_GRBW

byte neopix_gamma[] = {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2,
2, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 5, 5, 5,
5, 6, 6, 6, 6, 7, 7, 7, 7, 8, 8, 8, 9, 9, 9, 10,
10, 10, 11, 11, 11, 12, 12, 13, 13, 13, 14, 14, 15, 15, 16, 16,
17, 17, 18, 18, 19, 19, 20, 20, 21, 21, 22, 22, 23, 24, 24, 25,
25, 26, 27, 27, 28, 29, 29, 30, 31, 32, 32, 33, 34, 35, 35, 36,
37, 38, 39, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 50,
51, 52, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 66, 67, 68,
69, 70, 72, 73, 74, 75, 77, 78, 79, 81, 82, 83, 85, 86, 87, 89,
90, 92, 93, 95, 96, 98, 99,101,102,104,105,107,109,110,112,114,
115,117,119,120,122,124,126,127,129,131,133,135,137,138,140,142,
144,146,148,150,152,154,156,158,160,162,164,167,169,171,173,175,
177,180,182,184,186,189,191,193,196,198,200,203,205,208,210,213,
215,218,220,223,225,228,231,233,236,239,241,244,247,249,252,255 };

 

void setup() {
strip.setBrightness(BRIGHTNESS);
strip.begin();
strip.show(); // Initialize all pixels to ‘off’
colorWipe(strip.Color(255,25,46), 100);
}

void loop() {
//rainbowCycle(10);
//theaterChaseRainbow(10);
//whiteOverRainbow(10,75,5);
//rainbowFade2White(0,75,1);
for(uint16_t i=20; i>1; i–) {
//whiteOverRainbow(i,50,5);
//rainbowFade2White(i,75,1);
//theaterChaseRainbow(i);
//rainbowCycle(i);
//rainbow(i);
}
test(20);
}

 

void test(uint8_t wait) {
for (int j = 0; j < 256; j++) { // cycle all 256 colors in the wheel
for (int q = 0; q < 4; q++) {
for (int i = 0; i < strip.numPixels(); i = i + 4) {
strip.setPixelColor((i) + q, Wheel( (i + j) % 255)); //turn every third pixel on
}
strip.show();
delay(wait);
for (int i = 0; i < strip.numPixels(); i = i + 4) {
strip.setPixelColor((i) + q, 0); //turn every third pixel off
}
}
}
}

 

// Fill the dots one after the other with a color
void colorWipe(uint32_t c, uint8_t wait) {
for(uint16_t i=0; i<strip.numPixels(); i++) {
strip.setPixelColor(i, c);
strip.show();
delay(wait);
}
}

void pulseWhite(uint8_t wait) {
for(int j = 0; j < 256 ; j++){
for(uint16_t i=0; i<strip.numPixels(); i++) {
strip.setPixelColor(i, strip.Color(0,0,0, neopix_gamma[j] ) );
}
delay(wait);
strip.show();
}
for(int j = 255; j >= 0 ; j–){
for(uint16_t i=0; i<strip.numPixels(); i++) {
strip.setPixelColor(i, strip.Color(0,0,0, neopix_gamma[j] ) );
}
delay(wait);
strip.show();
}
}

// crawling lights with rainbow effect
void theaterChaseRainbow(uint8_t wait) {
for (int j = 0; j < 256; j++) { // cycle all 256 colors in the wheel
for (int q = 0; q < 3; q++) {
for (int i = 0; i < strip.numPixels(); i = i + 3) {
strip.setPixelColor(i + q, Wheel( (i + j) % 255)); //turn every third pixel on
}
strip.show();
delay(wait);
for (int i = 0; i < strip.numPixels(); i = i + 3) {
strip.setPixelColor(i + q, 0); //turn every third pixel off
}
}
}
}

void rainbowFade2White(uint8_t wait, int rainbowLoops, int whiteLoops) {
float fadeMax = 100.0;
int fadeVal = 0;
uint32_t wheelVal;
int redVal, greenVal, blueVal;

for(int k = 0 ; k < rainbowLoops ; k ++){
for(int j=0; j<256; j++) { // 5 cycles of all colors on wheel
for(int i=0; i< strip.numPixels(); i++) {
wheelVal = Wheel(((i * 256 / strip.numPixels()) + j) & 255);
redVal = red(wheelVal) * float(fadeVal/fadeMax);
greenVal = green(wheelVal) * float(fadeVal/fadeMax);
blueVal = blue(wheelVal) * float(fadeVal/fadeMax);
strip.setPixelColor( i, strip.Color( redVal, greenVal, blueVal ) );
}

//First loop, fade in!
if(k == 0 && fadeVal < fadeMax-1) {
fadeVal++;
}

//Last loop, fade out!
else if(k == rainbowLoops – 1 && j > 255 – fadeMax ){
fadeVal–;
}
strip.show();
delay(wait);
}
}
//delay(500);
for(int k = 0 ; k < whiteLoops ; k ++){
for(int j = 0; j < 256 ; j++){
for(uint16_t i=0; i < strip.numPixels(); i++) {
strip.setPixelColor(i, strip.Color(0,0,0, neopix_gamma[j] ) );
}
strip.show();
}
delay(2000);
for(int j = 255; j >= 0 ; j–){
for(uint16_t i=0; i < strip.numPixels(); i++) {
strip.setPixelColor(i, strip.Color(0,0,0, neopix_gamma[j] ) );
}
strip.show();
}
}
//delay(500);
}

void whiteOverRainbow(uint8_t wait, uint8_t whiteSpeed, uint8_t whiteLength ) {

if(whiteLength >= strip.numPixels()) whiteLength = strip.numPixels() – 1;

int head = whiteLength – 1;
int tail = 0;
int loops = 3;
int loopNum = 0;

static unsigned long lastTime = 0;

while(true){
for(int j=0; j<256; j++) {
for(uint16_t i=0; i<strip.numPixels(); i++) {
if((i >= tail && i <= head) || (tail > head && i >= tail) || (tail > head && i <= head) ){
strip.setPixelColor(i, strip.Color(0,0,0, 255 ) );
}
else{
strip.setPixelColor(i, Wheel(((i * 256 / strip.numPixels()) + j) & 255));
}
}
if(millis() – lastTime > whiteSpeed) {
head++;
tail++;
if(head == strip.numPixels()){
loopNum++;
}
lastTime = millis();
}
if(loopNum == loops) return;
head%=strip.numPixels();
tail%=strip.numPixels();
strip.show();
delay(wait);
}
}

}
void fullWhite() {

for(uint16_t i=0; i<strip.numPixels(); i++) {
strip.setPixelColor(i, strip.Color(0,0,0, 255 ) );
}
strip.show();
}

 

// Slightly different, this makes the rainbow equally distributed throughout
void rainbowCycle(uint8_t wait) {
uint16_t i, j;

for(j=0; j<256 * 5; j++) { // 5 cycles of all colors on wheel
for(i=0; i< strip.numPixels(); i++) {
strip.setPixelColor(i, Wheel(((i * 256 / strip.numPixels()) + j) & 255));
}
strip.show();
delay(wait);
}
}

 

void rainbow(uint8_t wait) {
uint16_t i, j;

for(j=0; j<256; j++) {
for(i=0; i<strip.numPixels(); i++) {
strip.setPixelColor(i, Wheel((i+j) & 255));
}
strip.show();
delay(wait);
}
}

// Input a value 0 to 255 to get a color value.
// The colours are a transition r – g – b – back to r.
uint32_t Wheel(byte WheelPos) {
WheelPos = 255 – WheelPos;
if(WheelPos < 85) {
return strip.Color(255 – WheelPos * 3, 0, WheelPos * 3,0);
}
if(WheelPos < 170) {
WheelPos -= 85;
return strip.Color(0, WheelPos * 3, 255 – WheelPos * 3,0);
}
WheelPos -= 170;
return strip.Color(WheelPos * 3, 255 – WheelPos * 3, 0,0);
}

uint8_t red(uint32_t c) { return (c >> 16); }
uint8_t green(uint32_t c) { return (c >> 8); }
uint8_t blue(uint32_t c) { return (c); }

DIYmall 28BYJ48 Stepper Motor 5V + ULN2003 Driver Board kit for Arduino Tutorial

5V-Stepper-Motor-ULN2003-Driver-Board

What you need :
1 X Arduino uno
1 X USB Cable
1 X stepper motor 28BYJ48 5V
1 X ULN2003
6 X Female to male cable

Connection:
ULN2003       Arduino
5V                         5V
GND                     GND
IN1                         8
IN2                        9
IN3                        10
IN4                        11

ULN2003 connect with stepper motor 28BYJ48

Once connection, connect Arduino uno r3 with computer via usb cable

Arduino code:
/*
BYJ48 Stepper motor code
Connect :
IN1 >> D8
IN2 >> D9
IN3 >> D10
IN4 >> D11
VCC … 5V Prefer to use external 5V Source
Gnd
written By :Mohannad Rawashdeh
https://www.instructables.com/member/Mohannad+Rawashdeh/
28/9/2013
*/

#define IN1 8
#define IN2 9
#define IN3 10
#define IN4 11
int Steps = 0;
boolean Direction = true;// gre
unsigned long last_time;
unsigned long currentMillis ;
int steps_left=4095;
long time;
void setup()
{
Serial.begin(115200);
pinMode(IN1, OUTPUT);
pinMode(IN2, OUTPUT);
pinMode(IN3, OUTPUT);
pinMode(IN4, OUTPUT);
// delay(1000);

}
void loop()
{
while(steps_left>0){
currentMillis = micros();
if(currentMillis-last_time>=1000){
stepper(1);
time=time+micros()-last_time;
last_time=micros();
steps_left–;
}
}
Serial.println(time);
Serial.println(“Wait…!”);
delay(2000);
Direction=!Direction;
steps_left=4095;
}

void stepper(int xw){
for (int x=0;x<xw;x++){
switch(Steps){
case 0:
digitalWrite(IN1, LOW);
digitalWrite(IN2, LOW);
digitalWrite(IN3, LOW);
digitalWrite(IN4, HIGH);
break;
case 1:
digitalWrite(IN1, LOW);
digitalWrite(IN2, LOW);
digitalWrite(IN3, HIGH);
digitalWrite(IN4, HIGH);
break;
case 2:
digitalWrite(IN1, LOW);
digitalWrite(IN2, LOW);
digitalWrite(IN3, HIGH);
digitalWrite(IN4, LOW);
break;
case 3:
digitalWrite(IN1, LOW);
digitalWrite(IN2, HIGH);
digitalWrite(IN3, HIGH);
digitalWrite(IN4, LOW);
break;
case 4:
digitalWrite(IN1, LOW);
digitalWrite(IN2, HIGH);
digitalWrite(IN3, LOW);
digitalWrite(IN4, LOW);
break;
case 5:
digitalWrite(IN1, HIGH);
digitalWrite(IN2, HIGH);
digitalWrite(IN3, LOW);
digitalWrite(IN4, LOW);
break;
case 6:
digitalWrite(IN1, HIGH);
digitalWrite(IN2, LOW);
digitalWrite(IN3, LOW);
digitalWrite(IN4, LOW);
break;
case 7:
digitalWrite(IN1, HIGH);
digitalWrite(IN2, LOW);
digitalWrite(IN3, LOW);
digitalWrite(IN4, HIGH);
break;
default:
digitalWrite(IN1, LOW);
digitalWrite(IN2, LOW);
digitalWrite(IN3, LOW);
digitalWrite(IN4, LOW);
break;
}
SetDirection();
}
}
void SetDirection(){
if(Direction==1){ Steps++;}
if(Direction==0){ Steps–; }
if(Steps>7){Steps=0;}
if(Steps<0){Steps=7; }
}

Video link  https://youtu.be/akoYIyD4ZVw

How to connect esp8266 01s to DIYmall UNO R3 (compatible with arduino)

Today, we will learn how to connect esp8266 01s to uno r3 and send AT command

Here is the connection:

uno r3               breadboard              esp-01s
3.3V                      red line
GND                      blue line
RESET                 blue line
RXD                                                        RXD
TXD                                                        TXD

blue line                  GND
red line                    VCC

Once you finish connection, it will like this

Then you can open arduino IDE, Tools—-serial monitor to open the window , the default baud rate is 115200, please choose 115200 and Both NL & CR
Type AT in the message field and press enter  and you will get OK response

Any question please feel free to contact

Email:sales@diymalls.com
Skype:freezone992
Phone/Whatsapp/Wetchat:0086-18576406709

Website:  www.diymalls.com

Amazon link  https://www.amazon.com/dp/B00O34AGSU
Aliexpress link  http://s.aliexpress.com/u2ei2aMv
ebay link  http://www.ebay.com/itm/272626824473