Sponsored Content
Top Forums Programming Very Basic Arduino Uno Board Testing Post 303042294 by Neo on Friday 20th of December 2019 10:29:42 AM
Old 12-20-2019
Here is a quick test with the same Arduino Uno with the I2C bus and the HC-SRO4 Ultrasonic Ranging Module

Very Basic Arduino Uno Board Testing-img_8698jpg


Very Basic Arduino Uno Board Testing-img_8693jpg


and the simple test sketch:

Code:
/*
  1602 LCD Display with I2C and HC-SRO4 Demo
  Created by Neo December 2019
  https://www.unix.com
*/
#include <LiquidCrystal_I2C.h>
const int i2c_addr = 0x27;    // bus address from LCD display
LiquidCrystal_I2C lcd(i2c_addr, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);
const int trigPin = 9;    //  HC-SRO4 trig
const int echoPin = 10;   //  HC-SRO4 echo
const int maxRange = 400; //  HC-SRO4 max range in cm
const int minRange = 2;   //  HC-SRO4 min range in cm
long duration;
float distanceCm, distanceInch;
void setup()
{
    lcd.begin(16, 2); // Initializes LCD screen and specifies chars (16) and rows (2)
    pinMode(trigPin, OUTPUT);
    pinMode(echoPin, INPUT);
}
void loop()
{
    digitalWrite(trigPin, LOW);
    delayMicroseconds(2);
    digitalWrite(trigPin, HIGH);
    delayMicroseconds(10);
    digitalWrite(trigPin, LOW);
    duration = pulseIn(echoPin, HIGH);
    distanceCm = duration * 0.034 / 2;
    distanceInch = duration * 0.0133 / 2;
    // Set range of HC-SRO4
    if (distanceCm > maxRange || distanceCm < minRange)
    {
        distanceCm = 0;
        distanceInch = 0;
    }
    //first row
    lcd.setCursor(0, 0); // Sets the cursor location
    lcd.print("Dist(cm): ");
    if (distanceCm > 0)
    {
        lcd.print(distanceCm, 1);
        lcd.print("     ");
    }
    else
    {
        lcd.print("         "); // easy clear :)
    }
    // second row
    lcd.setCursor(0, 1);
    lcd.print("Dist(in): ");
    if (distanceCm > 0)
    {
        lcd.print(distanceInch, 1);
        lcd.print("    ");
    }
    else
    {
        lcd.print("         "); // easy clear :)
    }

    delay(200);
}

 

8 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Use The Terminal To Test Arduino Is Working.

Hi all... (Apologies for any typos at all.) This is a step by step _script_ to check if your Arduino is talking to your Linux or Macbook Pro computer using the Terminal... It works on at least 3 Linux flavours and now the Macbook Pro... I hope you find it useful as a simple check for... (0 Replies)
Discussion started by: wisecracker
0 Replies

2. OS X (Apple)

Arduino Diecimila Board Access...

This is a very simple starter DEMO to access Arduino Diecimila Board for the Macbook Pro 13" OSX 10.7.5... A potentiometer is connected between 5V and Gnd with the wiper connected to ANALOG IN 0 on the Arduino. This was adjusted to give the Ms and Ls as seen... I now have DC in for this... (0 Replies)
Discussion started by: wisecracker
0 Replies

3. OS X (Apple)

Semi-Automatic Arduino Detection.

I am working on a semi-auto detection idea for Arduino for the Scope project. It does require a little user intervention but minimal. It works by just responding to two on screen prompts to unplug and plug Arduino into a USB port. There are two versions and both work perfectly well and give... (3 Replies)
Discussion started by: wisecracker
3 Replies

4. Programming

Arduino-cli - Uploading to Unknown Chinese Arduino Boards using the Arduino Command Line Interface

In my further exploration of Arduino, today I decided to install the arduino-cli on my mac today. https://github.com/arduino/arduino-cli I followed the instructions for macOS but when I got to this part: arduino-cli board list I got the dreaded "Unknown" Fully Qualified Board Name... (1 Reply)
Discussion started by: Neo
1 Replies

5. Programming

More Arduino Stuff...

HI all... (Apologies for any typos.) To add to Neo's Arduino subject matter I have decided to upload this in ".zip" format. Ignore "*.info" files these are AMIGA icons only and also the "HAM" drawer as these are photos in ancient AMIGA HAM modes. I have noticed that there are current... (6 Replies)
Discussion started by: wisecracker
6 Replies

6. Programming

Chinese Arduino UNO Clones - The Wavgat versus the generic UNO R3 Clone - The Winner Is?

Waiting for more fun Ardunio parts from AliExpress, I decided to test two cheap Chinese Arduino UNO clones. The Arduino UNO R3 (CH340G) MEGA328P The Wavgat UNO R3 (CH340G) MEGA328P Both of these Chinese Ardunio clones sell for about $3 USD, delivered to your door. The bottom line is... (0 Replies)
Discussion started by: Neo
0 Replies

7. Programming

Arduino UNIX Time - Syncing Computer UNIX Time to Arduino Time with Python

Just finished a quick Python script to send the current unix time over to the Arduino from macOS, so in the absence of GPS or some other way to get the unix timestamp (epoch time) to the Arduino, I can get my macOS and Arduino UNO synced to within a second. Normally, when the Arduino starts... (9 Replies)
Discussion started by: Neo
9 Replies

8. Programming

Basic Arduino UNO Bluetooth Testing with the BLE 4.0 (CC2541, MLT-BT04 IC)

Here is a sketch to do basic testing for the Arduino UNO and the MLT-BT04. This BLE module works with IOS (iPhone) and I'll add some details on my IOS testing with an iPhone in a follow-up post. For now, here is the basic BLE (HM-10) sketch for the Arduino UNO: /* Arduino test-code... (7 Replies)
Discussion started by: Neo
7 Replies
ACPITOOL(1)							   User Commands						       ACPITOOL(1)

NAME
acpitool - a Linux ACPI client, allowing you to query or set ACPI values SYNOPSIS
acpitool [ -aAbBcefFhjlmnosStTvVwWz ] DESCRIPTION
acpitool is a Linux ACPI client. It simply reads /proc/acpi or /sys/class entries and presents the output in a meaningfull, human-readable format. It provides a.o. information on battery status, AC adapter presence, thermal reading, etc. This command is most useful on laptops with an ACPI compliant BIOS and a Linux kernel, preferably from the 2.6 series, with ACPI enabled. Acpitool also allows the machine to be put into standby, if your laptop supports it. If your laptop is a Toshiba , it allows you to set the LCD brighness level and toggle the fan on/off. If you have an Asus laptop, it can also set the LCD brightness level, switch the LCD panel on or off, and control the mail led and wireless led. If you have an IBM Thinkpad laptop, it can once again set the LCD brightness level, and also eject the ultrabay device. OPTIONS
-a, --ac_adapter Show AC adapter presence -A Show supported Asus ACPI extensions (LCD brightness level, video out routing DSDT/acpi4asus info) -b Show battery status information, available batteries only. -B, --battery Show detailed battery status information, for all battery entries found. -c, --cpu Show CPU information (type, speed, PM capabilities, throttling states, c-state usage, frequency scaling). -e Show just about everything : more info on the batteries, ACPI version, kernel version, CPU, . . . -f, --fan Show fan status (shows fan info specific to Toshiba or IBM Thinkpad, if applicable). -F x Force the fan on (x=1) or switch back to auto mode (x=0). Works only on Toshiba laptops. The fan is switched off ONLY if it was forced on first, not if it was switched on automatically. Requires write access to /proc/acpi/toshiba/fan -h, --help Show help text. -j Eject Thinkpad ultrabay device. Requires write acces to /proc/acpi/ibm/bay -l x Set LCD brightness level to x, where x is in the range 0..7. Works only on Toshiba and IBM Thinkpad laptops. Requires write access to /proc/acpi/tochiba/lcd or /proc/acpi/ibm/brightness Illegal values for x will result in the value being set to either 0 or 7. -m x Switch the mail led on (x=1) or off (x=0). Works only on Asus laptops. Requires write access to /proc/acpi/asus/mled -n x Switch the wireless led on (x=1) or off (x=0). Works only on Asus laptops. Requires write access to /proc/acpi/asus/wled -o x Switch the LCD panel on (x=1) or off (x=0). Works only on Asus laptops. Requires write access to /proc/acpi/asus/lcd -s, --suspend to memory Put the machine into sleep state S3, if possible. Requires write access to /proc/acpi/sleep (kernel 2.4.x) or /sys/power/state (kernel 2.6.x) -S, --suspend to disk ? Put the machine into sleep state S4, if possible. Requires write access to /proc/acpi/sleep (kernel 2.4.x) or /sys/power/state (kernel 2.6.x) -t, --thermal Show thermal zone(s) information, including trip_points. -T, --Toshiba Show supported Toshiba ACPI extensions, currently being LCD brightness level, video out routing (what display is the video chip sending to) and fan status (on/off, forced or not). -v Show more verbose output when something is not found. Makes sense only when used together with other options. -V, --version Show acpitool version number and release date, then exit. -w Show the wakeup capable devices. (Available since ACPI 20040715, check your version). -W x Enable/disable wakeup capable device x. Run 'acpitool -w' to see valid numbers for x. Requires write access to /proc/acpi/wakeup -z x Set Asus LCD brightness level to x, where x is 0..15. Works only on Asus laptops. Requires write access to /proc/acpi/asus/brn REMARKS
This program absolutely requires a Linux kernel with ACPI support enabled. This program will not work without it. IBM Thinkpad support is part of the Linux kernel since kernel 2.6.10. Don't blame me if acpitool can't suspend your laptop : there are quite some problematic laptops out there. Check the acpi-bugzilla list if you don't believe me ;) Note that some options, like -F, -l , -j, -s, -W and -z, require write access to some of the /proc/acpi entries. This requires acpitool either to be run as root or either administrative measures must be taken, most likely by root, to allow ordinary users to write to these files. Creating a group for ACPI users and setting permissions accordingly comes to mind. Also note that older laptops (< 2000) often simply don't have ACPI support, they usually support APM only. BUGS
Let me know if you think you found one. FILES
/proc/acpi/... /proc/acpi/toshiba /proc/acpi/asus /proc/acpi/ibm /sys/power/state HOMEPAGE
http://freeunix.dyndns.org:8000/site2/acpitool.shtml AUTHOR
This program is written and maintained by David Leemans (davidleemans |at| scarlet |dot| be) and may be freely distributed under the terms of the GNU General Public License. There is ABSOLUTELY NO WARRANTY for this program. AcpiTool 0.5 24 Jul 2008 ACPITOOL(1)
All times are GMT -4. The time now is 03:56 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy